igv 3.8.1 → 3.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/igv.js CHANGED
@@ -10612,7 +10612,7 @@
10612
10612
  return 1 === unique.length
10613
10613
  }
10614
10614
 
10615
- /*! @license DOMPurify 3.4.7 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.7/LICENSE */
10615
+ /*! @license DOMPurify 3.4.11 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.11/LICENSE */
10616
10616
 
10617
10617
  function _arrayLikeToArray(r, a) {
10618
10618
  (null == a || a > r.length) && (a = r.length);
@@ -10941,8 +10941,14 @@
10941
10941
  );
10942
10942
  const DOCTYPE_NAME = seal(/^html$/i);
10943
10943
  const CUSTOM_ELEMENT = seal(/^[a-z][.\w]*(-[.\w]+)+$/i);
10944
+ // Markup-significant character probes used by _sanitizeElements.
10945
+ // Shared module-level instances are safe despite the sticky /g flags:
10946
+ // unapply() resets lastIndex for RegExp receivers before every call.
10947
+ const ELEMENT_MARKUP_PROBE = seal(/<[/\w!]/g);
10948
+ const COMMENT_MARKUP_PROBE = seal(/<[/\w]/g);
10949
+ const FALLBACK_TAG_CLOSE = seal(/<\/no(script|embed|frames)/i);
10950
+ const SELF_CLOSING_TAG = seal(/\/>/i);
10944
10951
 
10945
- /* eslint-disable @typescript-eslint/indent */
10946
10952
  // https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType
10947
10953
  const NODE_TYPE = {
10948
10954
  element: 1,
@@ -10953,7 +10959,7 @@
10953
10959
  // Deprecated
10954
10960
  entityNode: 6,
10955
10961
  // Deprecated
10956
- progressingInstruction: 7,
10962
+ processingInstruction: 7,
10957
10963
  comment: 8,
10958
10964
  document: 9,
10959
10965
  documentType: 10,
@@ -11014,10 +11020,25 @@
11014
11020
  uponSanitizeShadowNode: []
11015
11021
  };
11016
11022
  };
11023
+ /**
11024
+ * Resolve a set-valued configuration option: a fresh set built from
11025
+ * cfg[key] when it is an own array property (seeded with a clone of
11026
+ * options.base when given, case-normalized via options.transform),
11027
+ * the fallback set otherwise.
11028
+ *
11029
+ * @param cfg the cloned, prototype-free configuration object
11030
+ * @param key the configuration property to read
11031
+ * @param fallback the set to use when the option is absent or not an array
11032
+ * @param options transform and optional base set to merge into
11033
+ * @returns the resolved set
11034
+ */
11035
+ const _resolveSetOption = function _resolveSetOption(cfg, key, fallback, options) {
11036
+ return objectHasOwnProperty(cfg, key) && arrayIsArray(cfg[key]) ? addToSet(options.base ? clone(options.base) : {}, cfg[key], options.transform) : fallback;
11037
+ };
11017
11038
  function createDOMPurify() {
11018
11039
  let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();
11019
11040
  const DOMPurify = root => createDOMPurify(root);
11020
- DOMPurify.version = '3.4.7';
11041
+ DOMPurify.version = '3.4.11';
11021
11042
  DOMPurify.removed = [];
11022
11043
  if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {
11023
11044
  // Not running in a browser, provide a factory function
@@ -11062,6 +11083,54 @@
11062
11083
  }
11063
11084
  let trustedTypesPolicy;
11064
11085
  let emptyHTML = '';
11086
+ // The instance's own internal Trusted Types policy. Unlike a caller-supplied
11087
+ // `TRUSTED_TYPES_POLICY`, this is created at most once — Trusted Types throws
11088
+ // on duplicate policy names — and is the only policy allowed to persist
11089
+ // across configurations and survive `clearConfig()`.
11090
+ let defaultTrustedTypesPolicy;
11091
+ let defaultTrustedTypesPolicyResolved = false;
11092
+ // Tracks whether we are already inside a call to the configured Trusted Types
11093
+ // policy (`createHTML` or `createScriptURL`). If a supplied policy callback
11094
+ // itself calls `DOMPurify.sanitize` (the cause of #1422), `sanitize` would
11095
+ // re-enter the policy and recurse until the stack overflows. We detect that
11096
+ // re-entry and throw a clear, actionable error instead. The guard is shared
11097
+ // across both callbacks, because either one re-entering `sanitize` triggers
11098
+ // the same unbounded recursion.
11099
+ let IN_TRUSTED_TYPES_POLICY = 0;
11100
+ const _assertNotInTrustedTypesPolicy = function _assertNotInTrustedTypesPolicy() {
11101
+ if (IN_TRUSTED_TYPES_POLICY > 0) {
11102
+ throw typeErrorCreate('A configured TRUSTED_TYPES_POLICY callback (createHTML or ' + 'createScriptURL) must not call DOMPurify.sanitize, as that causes ' + 'infinite recursion. Do not pass a policy whose callbacks wrap ' + 'DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted ' + 'Types" section of the README.');
11103
+ }
11104
+ };
11105
+ const _createTrustedHTML = function _createTrustedHTML(html) {
11106
+ _assertNotInTrustedTypesPolicy();
11107
+ IN_TRUSTED_TYPES_POLICY++;
11108
+ try {
11109
+ return trustedTypesPolicy.createHTML(html);
11110
+ } finally {
11111
+ IN_TRUSTED_TYPES_POLICY--;
11112
+ }
11113
+ };
11114
+ const _createTrustedScriptURL = function _createTrustedScriptURL(scriptUrl) {
11115
+ _assertNotInTrustedTypesPolicy();
11116
+ IN_TRUSTED_TYPES_POLICY++;
11117
+ try {
11118
+ return trustedTypesPolicy.createScriptURL(scriptUrl);
11119
+ } finally {
11120
+ IN_TRUSTED_TYPES_POLICY--;
11121
+ }
11122
+ };
11123
+ // Lazily resolve (and cache) the instance's internal default policy.
11124
+ // Resolution is attempted at most once: a successful `createPolicy` cannot be
11125
+ // repeated (Trusted Types throws on duplicate names), and a failed or
11126
+ // unsupported attempt must not be retried on every parse.
11127
+ const _getDefaultTrustedTypesPolicy = function _getDefaultTrustedTypesPolicy() {
11128
+ if (!defaultTrustedTypesPolicyResolved) {
11129
+ defaultTrustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);
11130
+ defaultTrustedTypesPolicyResolved = true;
11131
+ }
11132
+ return defaultTrustedTypesPolicy;
11133
+ };
11065
11134
  const _document = document,
11066
11135
  implementation = _document.implementation,
11067
11136
  createNodeIterator = _document.createNodeIterator,
@@ -11158,6 +11227,13 @@
11158
11227
  let WHOLE_DOCUMENT = false;
11159
11228
  /* Track whether config is already set on this instance of DOMPurify. */
11160
11229
  let SET_CONFIG = false;
11230
+ /* Pristine allowlist bindings captured at setConfig() time. On the
11231
+ * persistent-config path sanitize() restores the sets from these before
11232
+ * the per-walk hook clone-guard, so a hook's in-call widening cannot
11233
+ * carry across calls. Null until setConfig() is called; reset by
11234
+ * clearConfig(). */
11235
+ let SET_CONFIG_ALLOWED_TAGS = null;
11236
+ let SET_CONFIG_ALLOWED_ATTR = null;
11161
11237
  /* Decide if all elements (e.g. style, script) must be children of
11162
11238
  * document.body. By default, browsers might move them to document.head */
11163
11239
  let FORCE_BODY = false;
@@ -11200,7 +11276,17 @@
11200
11276
  let USE_PROFILES = {};
11201
11277
  /* Tags to ignore content of when KEEP_CONTENT is true */
11202
11278
  let FORBID_CONTENTS = null;
11203
- const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);
11279
+ const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script',
11280
+ // <selectedcontent> mirrors the selected <option>'s subtree, cloned by
11281
+ // the UA (customizable <select>) — including any on* handlers — and the
11282
+ // engine re-mirrors synchronously whenever a removal changes which
11283
+ // option/selectedcontent is current, even inside DOMPurify's inert
11284
+ // DOMParser document. Hoisting its children on removal re-inserts a fresh
11285
+ // mirror target ahead of the walk, which the engine refills, looping
11286
+ // forever (DoS) and amplifying output. Dropping its content on removal
11287
+ // (rather than hoisting) breaks that cascade; the content is a duplicate
11288
+ // of the option, which is sanitized on its own. See campaign-3 F1/F6.
11289
+ 'selectedcontent', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);
11204
11290
  /* Tags that are safe for data: URIs */
11205
11291
  let DATA_URI_TAGS = null;
11206
11292
  const DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);
@@ -11216,8 +11302,10 @@
11216
11302
  /* Allowed XHTML+XML namespaces */
11217
11303
  let ALLOWED_NAMESPACES = null;
11218
11304
  const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);
11219
- let MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);
11220
- let HTML_INTEGRATION_POINTS = addToSet({}, ['annotation-xml']);
11305
+ const DEFAULT_MATHML_TEXT_INTEGRATION_POINTS = freeze(['mi', 'mo', 'mn', 'ms', 'mtext']);
11306
+ let MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, DEFAULT_MATHML_TEXT_INTEGRATION_POINTS);
11307
+ const DEFAULT_HTML_INTEGRATION_POINTS = freeze(['annotation-xml']);
11308
+ let HTML_INTEGRATION_POINTS = addToSet({}, DEFAULT_HTML_INTEGRATION_POINTS);
11221
11309
  // Certain elements are allowed in both SVG and HTML
11222
11310
  // namespace. We need to specify them explicitly
11223
11311
  // so that they don't get erroneously deleted from
@@ -11259,14 +11347,32 @@
11259
11347
  // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.
11260
11348
  transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;
11261
11349
  /* Set configuration parameters */
11262
- ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS') && arrayIsArray(cfg.ALLOWED_TAGS) ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;
11263
- ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR') && arrayIsArray(cfg.ALLOWED_ATTR) ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;
11264
- ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES') && arrayIsArray(cfg.ALLOWED_NAMESPACES) ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;
11265
- URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') && arrayIsArray(cfg.ADD_URI_SAFE_ATTR) ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR, transformCaseFunc) : DEFAULT_URI_SAFE_ATTRIBUTES;
11266
- DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS') && arrayIsArray(cfg.ADD_DATA_URI_TAGS) ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS, transformCaseFunc) : DEFAULT_DATA_URI_TAGS;
11267
- FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS') && arrayIsArray(cfg.FORBID_CONTENTS) ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;
11268
- FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS') && arrayIsArray(cfg.FORBID_TAGS) ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : clone({});
11269
- FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR') && arrayIsArray(cfg.FORBID_ATTR) ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : clone({});
11350
+ ALLOWED_TAGS = _resolveSetOption(cfg, 'ALLOWED_TAGS', DEFAULT_ALLOWED_TAGS, {
11351
+ transform: transformCaseFunc
11352
+ });
11353
+ ALLOWED_ATTR = _resolveSetOption(cfg, 'ALLOWED_ATTR', DEFAULT_ALLOWED_ATTR, {
11354
+ transform: transformCaseFunc
11355
+ });
11356
+ ALLOWED_NAMESPACES = _resolveSetOption(cfg, 'ALLOWED_NAMESPACES', DEFAULT_ALLOWED_NAMESPACES, {
11357
+ transform: stringToString
11358
+ });
11359
+ URI_SAFE_ATTRIBUTES = _resolveSetOption(cfg, 'ADD_URI_SAFE_ATTR', DEFAULT_URI_SAFE_ATTRIBUTES, {
11360
+ transform: transformCaseFunc,
11361
+ base: DEFAULT_URI_SAFE_ATTRIBUTES
11362
+ });
11363
+ DATA_URI_TAGS = _resolveSetOption(cfg, 'ADD_DATA_URI_TAGS', DEFAULT_DATA_URI_TAGS, {
11364
+ transform: transformCaseFunc,
11365
+ base: DEFAULT_DATA_URI_TAGS
11366
+ });
11367
+ FORBID_CONTENTS = _resolveSetOption(cfg, 'FORBID_CONTENTS', DEFAULT_FORBID_CONTENTS, {
11368
+ transform: transformCaseFunc
11369
+ });
11370
+ FORBID_TAGS = _resolveSetOption(cfg, 'FORBID_TAGS', clone({}), {
11371
+ transform: transformCaseFunc
11372
+ });
11373
+ FORBID_ATTR = _resolveSetOption(cfg, 'FORBID_ATTR', clone({}), {
11374
+ transform: transformCaseFunc
11375
+ });
11270
11376
  USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES') ? cfg.USE_PROFILES && typeof cfg.USE_PROFILES === 'object' ? clone(cfg.USE_PROFILES) : cfg.USE_PROFILES : false;
11271
11377
  ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true
11272
11378
  ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true
@@ -11285,8 +11391,8 @@
11285
11391
  IN_PLACE = cfg.IN_PLACE || false; // Default false
11286
11392
  IS_ALLOWED_URI$1 = isRegex(cfg.ALLOWED_URI_REGEXP) ? cfg.ALLOWED_URI_REGEXP : IS_ALLOWED_URI; // Default regexp
11287
11393
  NAMESPACE = typeof cfg.NAMESPACE === 'string' ? cfg.NAMESPACE : HTML_NAMESPACE; // Default HTML namespace
11288
- MATHML_TEXT_INTEGRATION_POINTS = objectHasOwnProperty(cfg, 'MATHML_TEXT_INTEGRATION_POINTS') && cfg.MATHML_TEXT_INTEGRATION_POINTS && typeof cfg.MATHML_TEXT_INTEGRATION_POINTS === 'object' ? clone(cfg.MATHML_TEXT_INTEGRATION_POINTS) : addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']); // Default built-in map
11289
- HTML_INTEGRATION_POINTS = objectHasOwnProperty(cfg, 'HTML_INTEGRATION_POINTS') && cfg.HTML_INTEGRATION_POINTS && typeof cfg.HTML_INTEGRATION_POINTS === 'object' ? clone(cfg.HTML_INTEGRATION_POINTS) : addToSet({}, ['annotation-xml']); // Default built-in map
11394
+ MATHML_TEXT_INTEGRATION_POINTS = objectHasOwnProperty(cfg, 'MATHML_TEXT_INTEGRATION_POINTS') && cfg.MATHML_TEXT_INTEGRATION_POINTS && typeof cfg.MATHML_TEXT_INTEGRATION_POINTS === 'object' ? clone(cfg.MATHML_TEXT_INTEGRATION_POINTS) : addToSet({}, DEFAULT_MATHML_TEXT_INTEGRATION_POINTS); // Default built-in map
11395
+ HTML_INTEGRATION_POINTS = objectHasOwnProperty(cfg, 'HTML_INTEGRATION_POINTS') && cfg.HTML_INTEGRATION_POINTS && typeof cfg.HTML_INTEGRATION_POINTS === 'object' ? clone(cfg.HTML_INTEGRATION_POINTS) : addToSet({}, DEFAULT_HTML_INTEGRATION_POINTS); // Default built-in map
11290
11396
  const customElementHandling = objectHasOwnProperty(cfg, 'CUSTOM_ELEMENT_HANDLING') && cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING === 'object' ? clone(cfg.CUSTOM_ELEMENT_HANDLING) : create(null);
11291
11397
  CUSTOM_ELEMENT_HANDLING = create(null);
11292
11398
  if (objectHasOwnProperty(customElementHandling, 'tagNameCheck') && isRegexOrFunction(customElementHandling.tagNameCheck)) {
@@ -11298,6 +11404,7 @@
11298
11404
  if (objectHasOwnProperty(customElementHandling, 'allowCustomizedBuiltInElements') && typeof customElementHandling.allowCustomizedBuiltInElements === 'boolean') {
11299
11405
  CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = customElementHandling.allowCustomizedBuiltInElements; // Default undefined
11300
11406
  }
11407
+ seal(CUSTOM_ELEMENT_HANDLING);
11301
11408
  if (SAFE_FOR_TEMPLATES) {
11302
11409
  ALLOW_DATA_ATTR = false;
11303
11410
  }
@@ -11381,6 +11488,13 @@
11381
11488
  addToSet(ALLOWED_TAGS, ['tbody']);
11382
11489
  delete FORBID_TAGS.tbody;
11383
11490
  }
11491
+ // Re-derive the active Trusted Types policy from this configuration on
11492
+ // every parse. The active policy must never be sticky closure state that
11493
+ // outlives the config that set it: a caller-supplied policy left in place
11494
+ // after `clearConfig()` — or after a later call that supplied none, or
11495
+ // `TRUSTED_TYPES_POLICY: null` — could sign a subsequent "default"
11496
+ // `RETURN_TRUSTED_TYPE` result with a foreign, possibly unsafe policy.
11497
+ // See GHSA-vxr8-fq34-vvx9.
11384
11498
  if (cfg.TRUSTED_TYPES_POLICY) {
11385
11499
  if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {
11386
11500
  throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');
@@ -11388,35 +11502,47 @@
11388
11502
  if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {
11389
11503
  throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');
11390
11504
  }
11391
- // Overwrite existing TrustedTypes policy.
11505
+ // A caller-supplied policy applies to this configuration only.
11506
+ const previousTrustedTypesPolicy = trustedTypesPolicy;
11392
11507
  trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;
11393
- // Sign local variables required by `sanitize`.
11394
- emptyHTML = trustedTypesPolicy.createHTML('');
11508
+ // Sign local variables required by `sanitize`. If the supplied policy's
11509
+ // `createHTML` is circular (i.e. it calls `DOMPurify.sanitize`), this
11510
+ // throws via the re-entrancy guard. Restore the previous policy first so
11511
+ // the instance is not left in a poisoned state. See #1422.
11512
+ try {
11513
+ emptyHTML = _createTrustedHTML('');
11514
+ } catch (error) {
11515
+ trustedTypesPolicy = previousTrustedTypesPolicy;
11516
+ throw error;
11517
+ }
11518
+ } else if (cfg.TRUSTED_TYPES_POLICY === null) {
11519
+ // Explicit opt-out for this call: perform no Trusted Types signing and
11520
+ // create nothing (so a strict `trusted-types` CSP that disallows a
11521
+ // `dompurify` policy can still call `sanitize` from inside its own
11522
+ // policy — see #1422). Resetting to `undefined` rather than a sticky
11523
+ // `null` also drops any previously retained caller policy, so it cannot
11524
+ // resurface on a later call, while still allowing the next config-less
11525
+ // call to restore the internal default policy. See GHSA-vxr8-fq34-vvx9.
11526
+ trustedTypesPolicy = undefined;
11527
+ emptyHTML = '';
11395
11528
  } else {
11396
- // Uninitialized policy, attempt to initialize the internal dompurify policy.
11529
+ // No policy supplied: keep the currently active policy if one is set — a
11530
+ // previously supplied policy is intentionally sticky across config-less
11531
+ // calls — otherwise fall back to the instance's own internal policy,
11532
+ // created at most once. (A policy supplied for a *single* call still
11533
+ // lingers by design; what must not linger is a policy whose configuration
11534
+ // has been torn down via `clearConfig()`, which restores the default.)
11397
11535
  if (trustedTypesPolicy === undefined) {
11398
- trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);
11536
+ trustedTypesPolicy = _getDefaultTrustedTypesPolicy();
11399
11537
  }
11400
- // If creating the internal policy succeeded sign internal variables.
11401
- if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {
11402
- emptyHTML = trustedTypesPolicy.createHTML('');
11538
+ // Sign internal variables only when a policy is active. A falsy policy
11539
+ // (Trusted Types unsupported, creation failed, or an explicit opt-out)
11540
+ // leaves `emptyHTML` as a plain string, so we never call `.createHTML` on
11541
+ // a non-policy and throw. See #1422.
11542
+ if (trustedTypesPolicy && typeof emptyHTML === 'string') {
11543
+ emptyHTML = _createTrustedHTML('');
11403
11544
  }
11404
11545
  }
11405
- /*
11406
- * Mirror the clone-before-mutate pattern already applied above for
11407
- * cfg.ADD_TAGS / cfg.ADD_ATTR: if any uponSanitize* hook is
11408
- * registered AND the set still points at the default constant,
11409
- * clone it. The hook then mutates the clone (in-call widening
11410
- * still works exactly as documented) and the next default-cfg
11411
- * call rebinds to the untouched original via the reassignment at
11412
- * the top of this function.
11413
- */
11414
- if ((hooks.uponSanitizeElement.length > 0 || hooks.uponSanitizeAttribute.length > 0) && ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {
11415
- ALLOWED_TAGS = clone(ALLOWED_TAGS);
11416
- }
11417
- if (hooks.uponSanitizeAttribute.length > 0 && ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {
11418
- ALLOWED_ATTR = clone(ALLOWED_ATTR);
11419
- }
11420
11546
  // Prevent further manipulation of configuration.
11421
11547
  // Not available in IE8, Safari 5, etc.
11422
11548
  if (freeze) {
@@ -11429,6 +11555,77 @@
11429
11555
  * correctly. */
11430
11556
  const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]);
11431
11557
  const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);
11558
+ /**
11559
+ * Namespace rules for an element in the SVG namespace.
11560
+ *
11561
+ * @param tagName the element's lowercase tag name
11562
+ * @param parent the (possibly simulated) parent node
11563
+ * @param parentTagName the parent's lowercase tag name
11564
+ * @returns true if a spec-compliant parser could produce this element
11565
+ */
11566
+ const _checkSvgNamespace = function _checkSvgNamespace(tagName, parent, parentTagName) {
11567
+ // The only way to switch from HTML namespace to SVG
11568
+ // is via <svg>. If it happens via any other tag, then
11569
+ // it should be killed.
11570
+ if (parent.namespaceURI === HTML_NAMESPACE) {
11571
+ return tagName === 'svg';
11572
+ }
11573
+ // The only way to switch from MathML to SVG is via <svg>
11574
+ // if the parent is either <annotation-xml> or a MathML
11575
+ // text integration point.
11576
+ if (parent.namespaceURI === MATHML_NAMESPACE) {
11577
+ return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);
11578
+ }
11579
+ // We only allow elements that are defined in SVG
11580
+ // spec. All others are disallowed in SVG namespace.
11581
+ return Boolean(ALL_SVG_TAGS[tagName]);
11582
+ };
11583
+ /**
11584
+ * Namespace rules for an element in the MathML namespace.
11585
+ *
11586
+ * @param tagName the element's lowercase tag name
11587
+ * @param parent the (possibly simulated) parent node
11588
+ * @param parentTagName the parent's lowercase tag name
11589
+ * @returns true if a spec-compliant parser could produce this element
11590
+ */
11591
+ const _checkMathMlNamespace = function _checkMathMlNamespace(tagName, parent, parentTagName) {
11592
+ // The only way to switch from HTML namespace to MathML
11593
+ // is via <math>. If it happens via any other tag, then
11594
+ // it should be killed.
11595
+ if (parent.namespaceURI === HTML_NAMESPACE) {
11596
+ return tagName === 'math';
11597
+ }
11598
+ // The only way to switch from SVG to MathML is via
11599
+ // <math> and HTML integration points
11600
+ if (parent.namespaceURI === SVG_NAMESPACE) {
11601
+ return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];
11602
+ }
11603
+ // We only allow elements that are defined in MathML
11604
+ // spec. All others are disallowed in MathML namespace.
11605
+ return Boolean(ALL_MATHML_TAGS[tagName]);
11606
+ };
11607
+ /**
11608
+ * Namespace rules for an element in the HTML namespace.
11609
+ *
11610
+ * @param tagName the element's lowercase tag name
11611
+ * @param parent the (possibly simulated) parent node
11612
+ * @param parentTagName the parent's lowercase tag name
11613
+ * @returns true if a spec-compliant parser could produce this element
11614
+ */
11615
+ const _checkHtmlNamespace = function _checkHtmlNamespace(tagName, parent, parentTagName) {
11616
+ // The only way to switch from SVG to HTML is via
11617
+ // HTML integration points, and from MathML to HTML
11618
+ // is via MathML text integration points
11619
+ if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {
11620
+ return false;
11621
+ }
11622
+ if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {
11623
+ return false;
11624
+ }
11625
+ // We disallow tags that are specific for MathML
11626
+ // or SVG and should never appear in HTML namespace
11627
+ return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);
11628
+ };
11432
11629
  /**
11433
11630
  * @param element a DOM element whose namespace is being checked
11434
11631
  * @returns Return false if the element has a
@@ -11451,51 +11648,13 @@
11451
11648
  return false;
11452
11649
  }
11453
11650
  if (element.namespaceURI === SVG_NAMESPACE) {
11454
- // The only way to switch from HTML namespace to SVG
11455
- // is via <svg>. If it happens via any other tag, then
11456
- // it should be killed.
11457
- if (parent.namespaceURI === HTML_NAMESPACE) {
11458
- return tagName === 'svg';
11459
- }
11460
- // The only way to switch from MathML to SVG is via`
11461
- // svg if parent is either <annotation-xml> or MathML
11462
- // text integration points.
11463
- if (parent.namespaceURI === MATHML_NAMESPACE) {
11464
- return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);
11465
- }
11466
- // We only allow elements that are defined in SVG
11467
- // spec. All others are disallowed in SVG namespace.
11468
- return Boolean(ALL_SVG_TAGS[tagName]);
11651
+ return _checkSvgNamespace(tagName, parent, parentTagName);
11469
11652
  }
11470
11653
  if (element.namespaceURI === MATHML_NAMESPACE) {
11471
- // The only way to switch from HTML namespace to MathML
11472
- // is via <math>. If it happens via any other tag, then
11473
- // it should be killed.
11474
- if (parent.namespaceURI === HTML_NAMESPACE) {
11475
- return tagName === 'math';
11476
- }
11477
- // The only way to switch from SVG to MathML is via
11478
- // <math> and HTML integration points
11479
- if (parent.namespaceURI === SVG_NAMESPACE) {
11480
- return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];
11481
- }
11482
- // We only allow elements that are defined in MathML
11483
- // spec. All others are disallowed in MathML namespace.
11484
- return Boolean(ALL_MATHML_TAGS[tagName]);
11654
+ return _checkMathMlNamespace(tagName, parent, parentTagName);
11485
11655
  }
11486
11656
  if (element.namespaceURI === HTML_NAMESPACE) {
11487
- // The only way to switch from SVG to HTML is via
11488
- // HTML integration points, and from MathML to HTML
11489
- // is via MathML text integration points
11490
- if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {
11491
- return false;
11492
- }
11493
- if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {
11494
- return false;
11495
- }
11496
- // We disallow tags that are specific for MathML
11497
- // or SVG and should never appear in HTML namespace
11498
- return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);
11657
+ return _checkHtmlNamespace(tagName, parent, parentTagName);
11499
11658
  }
11500
11659
  // For XHTML and XML documents that support custom namespaces
11501
11660
  if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {
@@ -11520,7 +11679,74 @@
11520
11679
  // eslint-disable-next-line unicorn/prefer-dom-node-remove
11521
11680
  getParentNode(node).removeChild(node);
11522
11681
  } catch (_) {
11682
+ /* The normal detach failed — this is reached for a parentless node
11683
+ (getParentNode() is null, so .removeChild throws). Element.prototype
11684
+ .remove() is itself a spec no-op on a parentless node, so a recorded
11685
+ "removal" would otherwise hand the caller back an intact,
11686
+ payload-bearing node (e.g. a detached IN_PLACE root the mXSS canary or
11687
+ the style-with-element-child rule decided to kill). Fail closed by
11688
+ throwing — exactly as a clobbered root does at the IN_PLACE entry —
11689
+ rather than trying to "neutralize" the node via its own methods.
11690
+ Neutralizing would mean calling getAttributeNames()/removeAttribute()
11691
+ on the node, both of which a <form> root can clobber via a named child
11692
+ (and _isClobbered does not even probe getAttributeNames), so the
11693
+ neutralize step could itself be silently defeated, leaving the payload
11694
+ intact. A throw touches only the cached, clobber-safe remove() and
11695
+ getParentNode(). Generalizes GHSA-r47g-fvhr-h676 (clobbered-form root)
11696
+ to every root-kill reason. REPORT-3.
11697
+ This lives inside the catch, so it never fires for a normally-removed
11698
+ in-tree node: those have a parent, removeChild() succeeds, and the
11699
+ catch is not entered. Only a kept (parentless) root reaches here. */
11523
11700
  remove(node);
11701
+ if (!getParentNode(node)) {
11702
+ throw typeErrorCreate('a node selected for removal could not be detached from its tree ' + 'and cannot be safely returned; refusing to sanitize in place');
11703
+ }
11704
+ }
11705
+ };
11706
+ /**
11707
+ * _neutralizeRoot
11708
+ *
11709
+ * Fail-closed teardown of an in-place root after the sanitize walk aborts
11710
+ * (campaign-3 F2). An internal throw mid-walk — e.g. a page-registered
11711
+ * custom element's reaction detaches a node so `_forceRemove`'s deliberate
11712
+ * parentless guard throws, or any other re-entrant engine mutation — would
11713
+ * otherwise leave the caller's *live* tree half-sanitized, with everything
11714
+ * after the abort point still carrying its handlers. There is no safe way
11715
+ * to resume the walk (the tree mutated under us), so we strip the root bare:
11716
+ * remove every child and every attribute, then let the caller's catch see
11717
+ * the original error. Clobber-safe (cached `remove`/`childNodes`/`attributes`
11718
+ * getters; the root was already clobber-pre-flighted at the IN_PLACE entry).
11719
+ *
11720
+ * @param root the in-place root to empty
11721
+ */
11722
+ const _neutralizeRoot = function _neutralizeRoot(root) {
11723
+ const childNodes = getChildNodes(root);
11724
+ if (childNodes) {
11725
+ const snapshot = [];
11726
+ arrayForEach(childNodes, child => {
11727
+ arrayPush(snapshot, child);
11728
+ });
11729
+ arrayForEach(snapshot, child => {
11730
+ try {
11731
+ remove(child);
11732
+ } catch (_) {
11733
+ /* Best-effort teardown; a still-attached child is handled below */
11734
+ }
11735
+ });
11736
+ }
11737
+ const attributes = getAttributes(root);
11738
+ if (attributes) {
11739
+ for (let i = attributes.length - 1; i >= 0; --i) {
11740
+ const attribute = attributes[i];
11741
+ const name = attribute && attribute.name;
11742
+ if (typeof name === 'string') {
11743
+ try {
11744
+ root.removeAttribute(name);
11745
+ } catch (_) {
11746
+ /* Clobbered removeAttribute — ignore (fail-closed best effort) */
11747
+ }
11748
+ }
11749
+ }
11524
11750
  }
11525
11751
  };
11526
11752
  /**
@@ -11555,6 +11781,72 @@
11555
11781
  }
11556
11782
  }
11557
11783
  };
11784
+ /**
11785
+ * _stripDisallowedAttributes
11786
+ *
11787
+ * Removes every attribute the active configuration does not allow from a
11788
+ * single element, using the same allowlist as the main attribute pass (so
11789
+ * `on*` handlers go, but no `/^on/` blocklist is introduced). Used only to
11790
+ * neutralise nodes that are being discarded from an in-place tree.
11791
+ *
11792
+ * @param element the element to strip
11793
+ */
11794
+ const _stripDisallowedAttributes = function _stripDisallowedAttributes(element) {
11795
+ const attributes = getAttributes(element);
11796
+ if (!attributes) {
11797
+ return;
11798
+ }
11799
+ for (let i = attributes.length - 1; i >= 0; --i) {
11800
+ const attribute = attributes[i];
11801
+ const name = attribute && attribute.name;
11802
+ if (typeof name !== 'string' || ALLOWED_ATTR[transformCaseFunc(name)]) {
11803
+ continue;
11804
+ }
11805
+ try {
11806
+ element.removeAttribute(name);
11807
+ } catch (_) {
11808
+ /* Clobbered removeAttribute on a doomed node — ignore */
11809
+ }
11810
+ }
11811
+ };
11812
+ /**
11813
+ * _neutralizeSubtree
11814
+ *
11815
+ * Completes the audit-5 F1 fix across every removal path. The KEEP_CONTENT
11816
+ * move-hoist neutralises only disallowed-tag removals; clobber, mXSS-canary,
11817
+ * namespace, comment, processing-instruction and KEEP_CONTENT:false removals
11818
+ * all drop their subtree wholesale via `_forceRemove`. On the IN_PLACE path
11819
+ * those dropped nodes are detached from the caller's LIVE tree but a
11820
+ * handler-bearing original among them (an `<img onerror>`/`<video>` that was
11821
+ * loading) keeps its queued resource event, which fires in page scope after
11822
+ * sanitize returns. This walks a removed subtree and strips every attribute
11823
+ * the active configuration does not allow — so `on*` handlers are cancelled
11824
+ * through the SAME allowlist that governs kept nodes, not a separate `/^on/`
11825
+ * blocklist. Run synchronously before sanitize returns, i.e. before any
11826
+ * queued event can fire. Hook-free by design: these nodes leave the output,
11827
+ * so firing attribute hooks for them would be surprising. Clobber-safe reads;
11828
+ * a doomed clobbered node may shadow `removeAttribute` (its own attributes are
11829
+ * irrelevant — it is discarded — while its non-clobbered descendants, e.g.
11830
+ * the `<img>`, are reached and scrubbed).
11831
+ *
11832
+ * @param root the root of a removed subtree to neutralise
11833
+ */
11834
+ const _neutralizeSubtree = function _neutralizeSubtree(root) {
11835
+ const stack = [root];
11836
+ while (stack.length > 0) {
11837
+ const node = stack.pop();
11838
+ const nodeType = getNodeType ? getNodeType(node) : node.nodeType;
11839
+ if (nodeType === NODE_TYPE.element) {
11840
+ _stripDisallowedAttributes(node);
11841
+ }
11842
+ const childNodes = getChildNodes(node);
11843
+ if (childNodes) {
11844
+ for (let i = childNodes.length - 1; i >= 0; --i) {
11845
+ stack.push(childNodes[i]);
11846
+ }
11847
+ }
11848
+ }
11849
+ };
11558
11850
  /**
11559
11851
  * _initDocument
11560
11852
  *
@@ -11576,7 +11868,7 @@
11576
11868
  // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)
11577
11869
  dirty = '<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>' + dirty + '</body></html>';
11578
11870
  }
11579
- const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;
11871
+ const dirtyPayload = trustedTypesPolicy ? _createTrustedHTML(dirty) : dirty;
11580
11872
  /*
11581
11873
  * Use the DOMParser API by default, fallback later if needs be
11582
11874
  * DOMParser not work for svg when has multiple root element.
@@ -11616,6 +11908,20 @@
11616
11908
  // eslint-disable-next-line no-bitwise
11617
11909
  NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);
11618
11910
  };
11911
+ /**
11912
+ * Replace template expression syntax (mustache, ERB, template
11913
+ * literal) with a space; shared by all SAFE_FOR_TEMPLATES scrub
11914
+ * sites. Order matters: mustache, then ERB, then template literal.
11915
+ *
11916
+ * @param value the string to scrub
11917
+ * @returns the scrubbed string
11918
+ */
11919
+ const _stripTemplateExpressions = function _stripTemplateExpressions(value) {
11920
+ value = stringReplace(value, MUSTACHE_EXPR$1, ' ');
11921
+ value = stringReplace(value, ERB_EXPR$1, ' ');
11922
+ value = stringReplace(value, TMPLIT_EXPR$1, ' ');
11923
+ return value;
11924
+ };
11619
11925
  /**
11620
11926
  * Strip template-engine expressions ({{...}}, ${...}, <%...%>) from the
11621
11927
  * character data of an element subtree. Used as the final safety net for
@@ -11635,20 +11941,28 @@
11635
11941
  *
11636
11942
  * @param node The root element whose character data should be scrubbed.
11637
11943
  */
11638
- const _scrubTemplateExpressions = function _scrubTemplateExpressions(node) {
11944
+ const _scrubTemplateExpressions2 = function _scrubTemplateExpressions(node) {
11945
+ var _node$querySelectorAl;
11639
11946
  node.normalize();
11640
11947
  const walker = createNodeIterator.call(node.ownerDocument || node, node,
11641
11948
  // eslint-disable-next-line no-bitwise
11642
11949
  NodeFilter.SHOW_TEXT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_CDATA_SECTION | NodeFilter.SHOW_PROCESSING_INSTRUCTION, null);
11643
11950
  let currentNode = walker.nextNode();
11644
11951
  while (currentNode) {
11645
- let data = currentNode.data;
11646
- arrayForEach([MUSTACHE_EXPR$1, ERB_EXPR$1, TMPLIT_EXPR$1], expr => {
11647
- data = stringReplace(data, expr, ' ');
11648
- });
11649
- currentNode.data = data;
11952
+ currentNode.data = _stripTemplateExpressions(currentNode.data);
11650
11953
  currentNode = walker.nextNode();
11651
11954
  }
11955
+ // NodeIterator does not descend into <template>.content per the DOM spec,
11956
+ // so we must explicitly recurse into each template's content fragment,
11957
+ // mirroring the approach used by _sanitizeShadowDOM.
11958
+ const templates = (_node$querySelectorAl = node.querySelectorAll) === null || _node$querySelectorAl === void 0 ? void 0 : _node$querySelectorAl.call(node, 'template');
11959
+ if (templates) {
11960
+ arrayForEach(templates, tmpl => {
11961
+ if (_isDocumentFragment(tmpl.content)) {
11962
+ _scrubTemplateExpressions2(tmpl.content);
11963
+ }
11964
+ });
11965
+ }
11652
11966
  };
11653
11967
  /**
11654
11968
  * _isClobbered
@@ -11744,67 +12058,64 @@
11744
12058
  }
11745
12059
  };
11746
12060
  function _executeHooks(hooks, currentNode, data) {
12061
+ if (hooks.length === 0) {
12062
+ return;
12063
+ }
11747
12064
  arrayForEach(hooks, hook => {
11748
12065
  hook.call(DOMPurify, currentNode, data, CONFIG);
11749
12066
  });
11750
12067
  }
11751
12068
  /**
11752
- * _sanitizeElements
12069
+ * Structural-threat checks that condemn a node regardless of the
12070
+ * allowlists: mXSS via namespace confusion, risky CSS construction,
12071
+ * processing instructions, markup-bearing comments. Pure predicate;
12072
+ * the caller removes. Check order is load-bearing.
11753
12073
  *
11754
- * @protect nodeName
11755
- * @protect textContent
11756
- * @protect removeChild
11757
- * @param currentNode to check for permission to exist
11758
- * @return true if node was killed, false if left alive
12074
+ * @param currentNode the node to inspect
12075
+ * @param tagName the node's transformCaseFunc'd tag name
12076
+ * @return true if the node must be removed
11759
12077
  */
11760
- const _sanitizeElements = function _sanitizeElements(currentNode) {
11761
- let content = null;
11762
- /* Execute a hook if present */
11763
- _executeHooks(hooks.beforeSanitizeElements, currentNode, null);
11764
- /* Check if element is clobbered or can clobber */
11765
- if (_isClobbered(currentNode)) {
11766
- _forceRemove(currentNode);
11767
- return true;
11768
- }
11769
- /* Now let's check the element's type and name */
11770
- const tagName = transformCaseFunc(currentNode.nodeName);
11771
- /* Execute a hook if present */
11772
- _executeHooks(hooks.uponSanitizeElement, currentNode, {
11773
- tagName,
11774
- allowedTags: ALLOWED_TAGS
11775
- });
12078
+ const _isUnsafeNode = function _isUnsafeNode(currentNode, tagName) {
11776
12079
  /* Detect mXSS attempts abusing namespace confusion */
11777
- if (SAFE_FOR_XML && currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\w!]/g, currentNode.innerHTML) && regExpTest(/<[/\w!]/g, currentNode.textContent)) {
11778
- _forceRemove(currentNode);
12080
+ if (SAFE_FOR_XML && currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(ELEMENT_MARKUP_PROBE, currentNode.textContent) && regExpTest(ELEMENT_MARKUP_PROBE, currentNode.innerHTML)) {
11779
12081
  return true;
11780
12082
  }
11781
12083
  /* Remove risky CSS construction leading to mXSS */
11782
12084
  if (SAFE_FOR_XML && currentNode.namespaceURI === HTML_NAMESPACE && tagName === 'style' && _isNode(currentNode.firstElementChild)) {
11783
- _forceRemove(currentNode);
11784
12085
  return true;
11785
12086
  }
11786
12087
  /* Remove any occurrence of processing instructions */
11787
- if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {
11788
- _forceRemove(currentNode);
12088
+ if (currentNode.nodeType === NODE_TYPE.processingInstruction) {
11789
12089
  return true;
11790
12090
  }
11791
12091
  /* Remove any kind of possibly harmful comments */
11792
- if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(/<[/\w]/g, currentNode.data)) {
11793
- _forceRemove(currentNode);
12092
+ if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(COMMENT_MARKUP_PROBE, currentNode.data)) {
11794
12093
  return true;
11795
12094
  }
11796
- /* Remove element if anything forbids its presence */
11797
- if (FORBID_TAGS[tagName] || !(EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function && EXTRA_ELEMENT_HANDLING.tagCheck(tagName)) && !ALLOWED_TAGS[tagName]) {
11798
- /* Check if we have a custom element to handle */
11799
- if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {
11800
- if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {
11801
- return false;
11802
- }
11803
- if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {
11804
- return false;
11805
- }
12095
+ return false;
12096
+ };
12097
+ /**
12098
+ * Handle a node whose tag is forbidden or not allowlisted: keep
12099
+ * allowed custom elements (false return exits _sanitizeElements
12100
+ * early - namespace/fallback checks and the afterSanitizeElements
12101
+ * hook are intentionally skipped for kept custom elements), else
12102
+ * hoist content per KEEP_CONTENT and remove.
12103
+ *
12104
+ * @param currentNode the disallowed node
12105
+ * @param tagName the node's transformCaseFunc'd tag name
12106
+ * @return true if the node was removed, false if kept
12107
+ */
12108
+ const _sanitizeDisallowedNode = function _sanitizeDisallowedNode(currentNode, tagName) {
12109
+ /* Check if we have a custom element to handle */
12110
+ if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {
12111
+ if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {
12112
+ return false;
12113
+ }
12114
+ if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {
12115
+ return false;
11806
12116
  }
11807
- /* Keep content except for bad-listed elements.
12117
+ }
12118
+ /* Keep content except for bad-listed elements.
11808
12119
  Use the cached prototype getters exclusively — the previous code
11809
12120
  had `|| currentNode.parentNode` / `|| currentNode.childNodes`
11810
12121
  fallbacks, but the cached getters always return the canonical
@@ -11812,20 +12123,72 @@
11812
12123
  path was dead in safe cases and a clobbering surface in unsafe
11813
12124
  ones. Falsy cached results stay falsy; the `if (childNodes &&
11814
12125
  parentNode)` check already gates correctly. */
11815
- if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {
11816
- const parentNode = getParentNode(currentNode);
11817
- const childNodes = getChildNodes(currentNode);
11818
- if (childNodes && parentNode) {
11819
- const childCount = childNodes.length;
11820
- for (let i = childCount - 1; i >= 0; --i) {
11821
- const childClone = cloneNode(childNodes[i], true);
11822
- parentNode.insertBefore(childClone, getNextSibling(currentNode));
11823
- }
12126
+ if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {
12127
+ const parentNode = getParentNode(currentNode);
12128
+ const childNodes = getChildNodes(currentNode);
12129
+ if (childNodes && parentNode) {
12130
+ const childCount = childNodes.length;
12131
+ /* In-place: hoist the *original* children so the iterator visits
12132
+ and sanitises them through the same allowlist pass as every other
12133
+ node. The caller built the tree in the live document, so the
12134
+ originals carry already-queued resource events (`<img onerror>`,
12135
+ `<video>`/`<audio>` error, lazy/`onload`, …); cloning would leave
12136
+ those originals detached but still armed, firing in page scope
12137
+ while the returned tree looked clean. Moving is safe in-place: the
12138
+ root is pre-validated as an allowed tag and so is never the node
12139
+ being removed, which keeps `parentNode` inside the iterator root
12140
+ and the relocated child inside the serialised tree.
12141
+ Otherwise (string / DOM-copy paths): clone. The iterator is rooted
12142
+ at — and the result serialised from — `body`, so a restrictive
12143
+ ALLOWED_TAGS that removes `body` itself must leave its content in
12144
+ place, which only cloning does; and those paths parse into an
12145
+ inert document, so their discarded originals never had a queued
12146
+ event to neutralise.
12147
+ `childNodes` is live; a tail-to-head walk keeps `childNodes[i]`
12148
+ valid whether we move (drops the trailing entry) or clone (leaves
12149
+ the list intact). */
12150
+ for (let i = childCount - 1; i >= 0; --i) {
12151
+ const hoisted = IN_PLACE ? childNodes[i] : cloneNode(childNodes[i], true);
12152
+ parentNode.insertBefore(hoisted, getNextSibling(currentNode));
11824
12153
  }
11825
12154
  }
12155
+ }
12156
+ _forceRemove(currentNode);
12157
+ return true;
12158
+ };
12159
+ /**
12160
+ * _sanitizeElements
12161
+ *
12162
+ * @protect nodeName
12163
+ * @protect textContent
12164
+ * @protect removeChild
12165
+ * @param currentNode to check for permission to exist
12166
+ * @return true if node was killed, false if left alive
12167
+ */
12168
+ const _sanitizeElements = function _sanitizeElements(currentNode) {
12169
+ /* Execute a hook if present */
12170
+ _executeHooks(hooks.beforeSanitizeElements, currentNode, null);
12171
+ /* Check if element is clobbered or can clobber */
12172
+ if (_isClobbered(currentNode)) {
11826
12173
  _forceRemove(currentNode);
11827
12174
  return true;
11828
12175
  }
12176
+ /* Now let's check the element's type and name */
12177
+ const tagName = transformCaseFunc(getNodeName ? getNodeName(currentNode) : currentNode.nodeName);
12178
+ /* Execute a hook if present */
12179
+ _executeHooks(hooks.uponSanitizeElement, currentNode, {
12180
+ tagName,
12181
+ allowedTags: ALLOWED_TAGS
12182
+ });
12183
+ /* Remove mXSS vectors, processing instructions and risky comments */
12184
+ if (_isUnsafeNode(currentNode, tagName)) {
12185
+ _forceRemove(currentNode);
12186
+ return true;
12187
+ }
12188
+ /* Remove element if anything forbids its presence */
12189
+ if (FORBID_TAGS[tagName] || !(EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function && EXTRA_ELEMENT_HANDLING.tagCheck(tagName)) && !ALLOWED_TAGS[tagName]) {
12190
+ return _sanitizeDisallowedNode(currentNode, tagName);
12191
+ }
11829
12192
  /* Check whether element has a valid namespace.
11830
12193
  Realm-safe check (GHSA-hpcv-96wg-7vj8): use the cached Node.prototype
11831
12194
  nodeType getter rather than `instanceof Element`, which is realm-
@@ -11838,17 +12201,14 @@
11838
12201
  return true;
11839
12202
  }
11840
12203
  /* Make sure that older browsers don't get fallback-tag mXSS */
11841
- if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(/<\/no(script|embed|frames)/i, currentNode.innerHTML)) {
12204
+ if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(FALLBACK_TAG_CLOSE, currentNode.innerHTML)) {
11842
12205
  _forceRemove(currentNode);
11843
12206
  return true;
11844
12207
  }
11845
12208
  /* Sanitize element content to be template-safe */
11846
12209
  if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {
11847
12210
  /* Get the element's text content */
11848
- content = currentNode.textContent;
11849
- arrayForEach([MUSTACHE_EXPR$1, ERB_EXPR$1, TMPLIT_EXPR$1], expr => {
11850
- content = stringReplace(content, expr, ' ');
11851
- });
12211
+ const content = _stripTemplateExpressions(currentNode.textContent);
11852
12212
  if (currentNode.textContent !== content) {
11853
12213
  arrayPush(DOMPurify.removed, {
11854
12214
  element: currentNode.cloneNode()
@@ -11883,7 +12243,7 @@
11883
12243
  (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)
11884
12244
  XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)
11885
12245
  We don't need to check the value; it's always URI safe. */
11886
- if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR$1, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR$1, lcName)) ; else if (!nameIsPermitted || FORBID_ATTR[lcName]) {
12246
+ if (ALLOW_DATA_ATTR && regExpTest(DATA_ATTR$1, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR$1, lcName)) ; else if (!nameIsPermitted) {
11887
12247
  if (
11888
12248
  // First condition does a very basic check if a) it's basically a valid custom element tagname AND
11889
12249
  // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
@@ -11915,6 +12275,63 @@
11915
12275
  const _isBasicCustomElement = function _isBasicCustomElement(tagName) {
11916
12276
  return !RESERVED_CUSTOM_ELEMENT_NAMES[stringToLowerCase(tagName)] && regExpTest(CUSTOM_ELEMENT$1, tagName);
11917
12277
  };
12278
+ /**
12279
+ * Wrap an attribute value in the matching Trusted Types object when
12280
+ * the active policy requires it. Namespaced attributes pass through
12281
+ * unchanged (no TT support yet, see
12282
+ * https://bugs.chromium.org/p/chromium/issues/detail?id=1305293).
12283
+ *
12284
+ * @param lcTag lowercase tag name of the containing element
12285
+ * @param lcName lowercase attribute name
12286
+ * @param namespaceURI the attribute's namespace, if any
12287
+ * @param value the attribute value to wrap
12288
+ * @return the value, wrapped when Trusted Types demand it
12289
+ */
12290
+ const _applyTrustedTypesToAttribute = function _applyTrustedTypesToAttribute(lcTag, lcName, namespaceURI, value) {
12291
+ if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function' && !namespaceURI) {
12292
+ switch (trustedTypes.getAttributeType(lcTag, lcName)) {
12293
+ case 'TrustedHTML':
12294
+ {
12295
+ return _createTrustedHTML(value);
12296
+ }
12297
+ case 'TrustedScriptURL':
12298
+ {
12299
+ return _createTrustedScriptURL(value);
12300
+ }
12301
+ }
12302
+ }
12303
+ return value;
12304
+ };
12305
+ /**
12306
+ * Write a modified attribute value back onto the element. On
12307
+ * success, re-probe for clobbering introduced by the new value and
12308
+ * remove the element when found; otherwise pop the removal entry
12309
+ * recorded by the earlier _removeAttribute (long-standing pairing
12310
+ * with the SANITIZE_NAMED_PROPS path - do not "fix" casually). On
12311
+ * failure, remove the attribute instead.
12312
+ *
12313
+ * @param currentNode the element carrying the attribute
12314
+ * @param name the attribute name as present on the element
12315
+ * @param namespaceURI the attribute's namespace, if any
12316
+ * @param value the new attribute value
12317
+ */
12318
+ const _setAttributeValue = function _setAttributeValue(currentNode, name, namespaceURI, value) {
12319
+ try {
12320
+ if (namespaceURI) {
12321
+ currentNode.setAttributeNS(namespaceURI, name, value);
12322
+ } else {
12323
+ /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. "x-schema". */
12324
+ currentNode.setAttribute(name, value);
12325
+ }
12326
+ if (_isClobbered(currentNode)) {
12327
+ _forceRemove(currentNode);
12328
+ } else {
12329
+ arrayPop(DOMPurify.removed);
12330
+ }
12331
+ } catch (_) {
12332
+ _removeAttribute(name, currentNode);
12333
+ }
12334
+ };
11918
12335
  /**
11919
12336
  * _sanitizeAttributes
11920
12337
  *
@@ -11941,6 +12358,7 @@
11941
12358
  forceKeepAttr: undefined
11942
12359
  };
11943
12360
  let l = attributes.length;
12361
+ const lcTag = transformCaseFunc(currentNode.nodeName);
11944
12362
  /* Go backwards over all attributes; safely remove bad ones */
11945
12363
  while (l--) {
11946
12364
  const attr = attributes[l];
@@ -11978,7 +12396,7 @@
11978
12396
  _removeAttribute(name, currentNode);
11979
12397
  continue;
11980
12398
  }
11981
- /* Did the hooks approve of the attribute? */
12399
+ /* Did the hooks force-keep the attribute? */
11982
12400
  if (hookEvent.forceKeepAttr) {
11983
12401
  continue;
11984
12402
  }
@@ -11988,56 +12406,24 @@
11988
12406
  continue;
11989
12407
  }
11990
12408
  /* Work around a security issue in jQuery 3.0 */
11991
- if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\/>/i, value)) {
12409
+ if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(SELF_CLOSING_TAG, value)) {
11992
12410
  _removeAttribute(name, currentNode);
11993
12411
  continue;
11994
12412
  }
11995
12413
  /* Sanitize attribute content to be template-safe */
11996
12414
  if (SAFE_FOR_TEMPLATES) {
11997
- arrayForEach([MUSTACHE_EXPR$1, ERB_EXPR$1, TMPLIT_EXPR$1], expr => {
11998
- value = stringReplace(value, expr, ' ');
11999
- });
12415
+ value = _stripTemplateExpressions(value);
12000
12416
  }
12001
12417
  /* Is `value` valid for this attribute? */
12002
- const lcTag = transformCaseFunc(currentNode.nodeName);
12003
12418
  if (!_isValidAttribute(lcTag, lcName, value)) {
12004
12419
  _removeAttribute(name, currentNode);
12005
12420
  continue;
12006
12421
  }
12007
12422
  /* Handle attributes that require Trusted Types */
12008
- if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function') {
12009
- if (namespaceURI) ; else {
12010
- switch (trustedTypes.getAttributeType(lcTag, lcName)) {
12011
- case 'TrustedHTML':
12012
- {
12013
- value = trustedTypesPolicy.createHTML(value);
12014
- break;
12015
- }
12016
- case 'TrustedScriptURL':
12017
- {
12018
- value = trustedTypesPolicy.createScriptURL(value);
12019
- break;
12020
- }
12021
- }
12022
- }
12023
- }
12423
+ value = _applyTrustedTypesToAttribute(lcTag, lcName, namespaceURI, value);
12024
12424
  /* Handle invalid data-* attribute set by try-catching it */
12025
12425
  if (value !== initValue) {
12026
- try {
12027
- if (namespaceURI) {
12028
- currentNode.setAttributeNS(namespaceURI, name, value);
12029
- } else {
12030
- /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. "x-schema". */
12031
- currentNode.setAttribute(name, value);
12032
- }
12033
- if (_isClobbered(currentNode)) {
12034
- _forceRemove(currentNode);
12035
- } else {
12036
- arrayPop(DOMPurify.removed);
12037
- }
12038
- } catch (_) {
12039
- _removeAttribute(name, currentNode);
12040
- }
12426
+ _setAttributeValue(currentNode, name, namespaceURI, value);
12041
12427
  }
12042
12428
  }
12043
12429
  /* Execute a hook if present */
@@ -12079,9 +12465,9 @@
12079
12465
  iterator also surfaces. */
12080
12466
  const shadowNodeType = getNodeType ? getNodeType(shadowNode) : shadowNode.nodeType;
12081
12467
  if (shadowNodeType === NODE_TYPE.element) {
12082
- const innerSr = getShadowRoot ? getShadowRoot(shadowNode) : shadowNode.shadowRoot;
12468
+ const innerSr = getShadowRoot(shadowNode);
12083
12469
  if (_isDocumentFragment(innerSr)) {
12084
- _sanitizeAttachedShadowRoots2(innerSr);
12470
+ _sanitizeAttachedShadowRoots(innerSr);
12085
12471
  _sanitizeShadowDOM2(innerSr);
12086
12472
  }
12087
12473
  }
@@ -12108,46 +12494,81 @@
12108
12494
  *
12109
12495
  * @param root the subtree root to walk for attached shadow roots
12110
12496
  */
12111
- const _sanitizeAttachedShadowRoots2 = function _sanitizeAttachedShadowRoots(root) {
12112
- const nodeType = getNodeType ? getNodeType(root) : root.nodeType;
12113
- if (nodeType === NODE_TYPE.element) {
12114
- const sr = getShadowRoot ? getShadowRoot(root) : root.shadowRoot;
12115
- // Realm-safe check (GHSA-hpcv-96wg-7vj8): use nodeType-based
12116
- // detection rather than `instanceof DocumentFragment`, which is
12117
- // realm-bound and silently skipped shadow roots whose host element
12118
- // belonged to a foreign realm (e.g. iframe.contentDocument
12119
- // attachShadow). A foreign-realm ShadowRoot extends the foreign
12120
- // realm's DocumentFragment, not ours, so the old instanceof check
12121
- // returned false and the shadow subtree was never walked.
12122
- if (_isDocumentFragment(sr)) {
12123
- // Recurse first so that nested shadow roots are reached even if
12124
- // _sanitizeShadowDOM removes hosts at this level.
12125
- _sanitizeAttachedShadowRoots2(sr);
12126
- _sanitizeShadowDOM2(sr);
12497
+ const _sanitizeAttachedShadowRoots = function _sanitizeAttachedShadowRoots(root) {
12498
+ /* Iterative (explicit stack) rather than per-child recursion. DOM APIs
12499
+ impose no depth cap, so an attacker-shaped tree (JSON/CRDT/editor data
12500
+ built straight into the DOM — the IN_PLACE surface) deeper than the JS
12501
+ call-stack budget would otherwise overflow native recursion here and
12502
+ throw at the IN_PLACE entry pre-pass, before a single node is
12503
+ sanitized, leaving the caller's live tree untouched (fail-open). See
12504
+ campaign-3 F4. A heap stack keeps depth off the call stack.
12505
+ Each work item is either a node to descend into, or a deferred
12506
+ `_sanitizeShadowDOM` for an already-walked shadow root. The deferred
12507
+ form preserves the original post-order discipline: a shadow root's
12508
+ nested shadow roots are discovered before the outer shadow is
12509
+ sanitized (which may remove hosts). Pushes are in reverse of the
12510
+ desired processing order (LIFO): template content, then children, then
12511
+ the shadow-sanitize, then the shadow walk — so the order matches the
12512
+ previous recursion exactly. */
12513
+ const stack = [{
12514
+ node: root,
12515
+ shadow: null
12516
+ }];
12517
+ while (stack.length > 0) {
12518
+ const item = stack.pop();
12519
+ /* Deferred shadow-DOM sanitisation: runs after its subtree was walked. */
12520
+ if (item.shadow) {
12521
+ _sanitizeShadowDOM2(item.shadow);
12522
+ continue;
12127
12523
  }
12128
- }
12129
- // Snapshot children before recursing. Sanitization of one subtree
12130
- // (e.g. via an uponSanitizeShadowNode hook) may detach siblings,
12131
- // and naive nextSibling traversal would silently skip the rest of
12132
- // the list once a node is detached.
12133
- const childNodes = getChildNodes ? getChildNodes(root) : root.childNodes;
12134
- if (!childNodes) {
12135
- return;
12136
- }
12137
- const snapshot = [];
12138
- arrayForEach(childNodes, child => {
12139
- arrayPush(snapshot, child);
12140
- });
12141
- for (const child of snapshot) {
12142
- _sanitizeAttachedShadowRoots2(child);
12143
- }
12144
- /* When the root is a <template>, also descend into root.content */
12145
- if (nodeType === NODE_TYPE.element) {
12146
- const rootName = getNodeName ? getNodeName(root) : null;
12147
- if (typeof rootName === 'string' && transformCaseFunc(rootName) === 'template') {
12148
- const content = root.content;
12149
- if (_isDocumentFragment(content)) {
12150
- _sanitizeAttachedShadowRoots2(content);
12524
+ const node = item.node;
12525
+ const nodeType = getNodeType ? getNodeType(node) : node.nodeType;
12526
+ const isElement = nodeType === NODE_TYPE.element;
12527
+ /* (pushed last processed first) Children, snapshotted in reverse so
12528
+ the first child is processed first. Snapshotting matters because a
12529
+ hook may detach siblings mid-walk. */
12530
+ const childNodes = getChildNodes(node);
12531
+ if (childNodes) {
12532
+ for (let i = childNodes.length - 1; i >= 0; --i) {
12533
+ stack.push({
12534
+ node: childNodes[i],
12535
+ shadow: null
12536
+ });
12537
+ }
12538
+ }
12539
+ /* (pushed before children → processed after them, matching the old
12540
+ "template content last" order) When the node is a <template>,
12541
+ descend into its content. */
12542
+ if (isElement) {
12543
+ const rootName = getNodeName ? getNodeName(node) : null;
12544
+ if (typeof rootName === 'string' && transformCaseFunc(rootName) === 'template') {
12545
+ const content = node.content;
12546
+ if (_isDocumentFragment(content)) {
12547
+ stack.push({
12548
+ node: content,
12549
+ shadow: null
12550
+ });
12551
+ }
12552
+ }
12553
+ }
12554
+ /* Shadow root (processed first): walk its subtree, then sanitise it.
12555
+ Realm-safe check (GHSA-hpcv-96wg-7vj8): nodeType-based detection
12556
+ rather than `instanceof DocumentFragment`, which is realm-bound and
12557
+ silently skipped foreign-realm shadow roots (e.g.
12558
+ iframe.contentDocument attachShadow). */
12559
+ if (isElement) {
12560
+ const sr = getShadowRoot(node);
12561
+ if (_isDocumentFragment(sr)) {
12562
+ /* Push the deferred sanitise first so it pops after the shadow
12563
+ walk we push next, i.e. nested shadow roots are discovered
12564
+ before this one is sanitised. */
12565
+ stack.push({
12566
+ node: null,
12567
+ shadow: sr
12568
+ }, {
12569
+ node: sr,
12570
+ shadow: null
12571
+ });
12151
12572
  }
12152
12573
  }
12153
12574
  }
@@ -12178,16 +12599,41 @@
12178
12599
  return dirty;
12179
12600
  }
12180
12601
  /* Assign config vars */
12181
- if (!SET_CONFIG) {
12602
+ if (SET_CONFIG) {
12603
+ /* Persistent setConfig() path: _parseConfig is skipped, so the sets are
12604
+ * not re-derived per call. Restore them from the pristine bindings
12605
+ * captured at setConfig() time so a previous call's hook clone (mutated
12606
+ * below) does not carry over. */
12607
+ ALLOWED_TAGS = SET_CONFIG_ALLOWED_TAGS;
12608
+ ALLOWED_ATTR = SET_CONFIG_ALLOWED_ATTR;
12609
+ } else {
12182
12610
  _parseConfig(cfg);
12183
12611
  }
12612
+ /* Clone the hook-mutable allowlists before the walk whenever an
12613
+ * uponSanitize* hook is registered. The hook event exposes ALLOWED_TAGS
12614
+ * and ALLOWED_ATTR by reference (as allowedTags / allowedAttributes), so
12615
+ * a hook that widens them would otherwise mutate the shared set
12616
+ * permanently: across later calls and across every element. Cloning per
12617
+ * walk keeps documented in-call widening working while scoping it to the
12618
+ * call. A single guard for both config paths - the per-call path rebinds
12619
+ * the sets in _parseConfig each call, the persistent path restores them
12620
+ * from the captured bindings just above - so the two cannot diverge. */
12621
+ if (hooks.uponSanitizeElement.length > 0 || hooks.uponSanitizeAttribute.length > 0) {
12622
+ ALLOWED_TAGS = clone(ALLOWED_TAGS);
12623
+ }
12624
+ if (hooks.uponSanitizeAttribute.length > 0) {
12625
+ ALLOWED_ATTR = clone(ALLOWED_ATTR);
12626
+ }
12184
12627
  /* Clean up removed elements */
12185
12628
  DOMPurify.removed = [];
12186
- /* Check if dirty is correctly typed for IN_PLACE */
12187
- if (typeof dirty === 'string') {
12188
- IN_PLACE = false;
12189
- }
12190
- if (IN_PLACE) {
12629
+ /* Resolve IN_PLACE for this call without mutating persistent config.
12630
+ Writing the IN_PLACE closure variable here leaks under setConfig(),
12631
+ where _parseConfig is skipped on later calls: a single string call would
12632
+ disable in-place mode for every subsequent node call, returning a
12633
+ sanitized copy while leaving the caller's node — which in-place callers
12634
+ keep using and whose return value they ignore — unsanitized. REPORT-2. */
12635
+ const inPlace = IN_PLACE && typeof dirty !== 'string' && _isNode(dirty);
12636
+ if (inPlace) {
12191
12637
  /* Do some early pre-sanitization to avoid unsafe root nodes.
12192
12638
  Read nodeName through the cached prototype getter — a clobbering
12193
12639
  child named "nodeName" on the form root would otherwise shadow
@@ -12214,8 +12660,16 @@
12214
12660
  throw typeErrorCreate('root node is clobbered and cannot be sanitized in-place');
12215
12661
  }
12216
12662
  /* Sanitize attached shadow roots before the main iterator runs.
12217
- The iterator does not descend into shadow trees. */
12218
- _sanitizeAttachedShadowRoots2(dirty);
12663
+ The iterator does not descend into shadow trees. Same fail-closed
12664
+ barrier as the main walk (campaign-3 F2): a custom-element reaction
12665
+ inside a shadow root could abort this pre-pass before the walk runs,
12666
+ which would otherwise leave the entire live tree unsanitized. */
12667
+ try {
12668
+ _sanitizeAttachedShadowRoots(dirty);
12669
+ } catch (error) {
12670
+ _neutralizeRoot(dirty);
12671
+ throw error;
12672
+ }
12219
12673
  } else if (_isNode(dirty)) {
12220
12674
  /* If dirty is a DOM element, append to an empty document to avoid
12221
12675
  elements being stripped by the parser */
@@ -12235,13 +12689,13 @@
12235
12689
  descend into shadow trees. The walk routes every read through a
12236
12690
  cached prototype getter so clobbering descendants on a form root
12237
12691
  cannot hide a shadow host from this pass. */
12238
- _sanitizeAttachedShadowRoots2(importedNode);
12692
+ _sanitizeAttachedShadowRoots(importedNode);
12239
12693
  } else {
12240
12694
  /* Exit directly if we have nothing to do */
12241
12695
  if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&
12242
12696
  // eslint-disable-next-line unicorn/prefer-includes
12243
12697
  dirty.indexOf('<') === -1) {
12244
- return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;
12698
+ return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? _createTrustedHTML(dirty) : dirty;
12245
12699
  }
12246
12700
  /* Initialize the document to work on */
12247
12701
  body = _initDocument(dirty);
@@ -12255,32 +12709,59 @@
12255
12709
  _forceRemove(body.firstChild);
12256
12710
  }
12257
12711
  /* Get node iterator */
12258
- const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);
12259
- /* Now start iterating over the created document */
12260
- while (currentNode = nodeIterator.nextNode()) {
12261
- /* Sanitize tags and elements */
12262
- _sanitizeElements(currentNode);
12263
- /* Check attributes next */
12264
- _sanitizeAttributes(currentNode);
12265
- /* Shadow DOM detected, sanitize it.
12266
- Realm-safe check (GHSA-hpcv-96wg-7vj8): nodeType-based detection
12267
- instead of instanceof, so foreign-realm <template>.content is
12268
- walked correctly. */
12269
- if (_isDocumentFragment(currentNode.content)) {
12270
- _sanitizeShadowDOM2(currentNode.content);
12712
+ const nodeIterator = _createNodeIterator(inPlace ? dirty : body);
12713
+ /* Now start iterating over the created document.
12714
+ The walk runs inside an exception barrier (campaign-3 F2): a re-entrant
12715
+ engine/custom-element mutation can detach a node mid-walk so
12716
+ `_forceRemove`'s parentless guard throws, aborting the loop. Without the
12717
+ barrier the caller's in-place tree would be left half-sanitized with the
12718
+ unvisited tail still armed. On any throw we fail closed — strip the
12719
+ in-place root bare then rethrow so the existing throw contract is
12720
+ preserved. (String/DOM-copy paths never return the partial body, so the
12721
+ propagating throw is already fail-closed there.) */
12722
+ try {
12723
+ while (currentNode = nodeIterator.nextNode()) {
12724
+ /* Sanitize tags and elements */
12725
+ _sanitizeElements(currentNode);
12726
+ /* Check attributes next */
12727
+ _sanitizeAttributes(currentNode);
12728
+ /* Shadow DOM detected, sanitize it.
12729
+ Realm-safe check (GHSA-hpcv-96wg-7vj8): nodeType-based detection
12730
+ instead of instanceof, so foreign-realm <template>.content is
12731
+ walked correctly. */
12732
+ if (_isDocumentFragment(currentNode.content)) {
12733
+ _sanitizeShadowDOM2(currentNode.content);
12734
+ }
12271
12735
  }
12736
+ } catch (error) {
12737
+ if (inPlace) {
12738
+ _neutralizeRoot(dirty);
12739
+ }
12740
+ throw error;
12272
12741
  }
12273
12742
  /* If we sanitized `dirty` in-place, return it. */
12274
- if (IN_PLACE) {
12743
+ if (inPlace) {
12744
+ /* Fail-closed completion of the audit-5 F1 fix: every node removed from
12745
+ the caller's live tree is detached but may still hold a queued
12746
+ resource-event handler that fires in page scope after we return. The
12747
+ move-hoist covers only disallowed-tag KEEP_CONTENT removals; strip the
12748
+ non-allow-listed attributes off every other removed subtree (clobber,
12749
+ mXSS, namespace, comments, KEEP_CONTENT:false, …) so those handlers are
12750
+ cancelled before any event can fire. Runs synchronously, pre-return. */
12751
+ arrayForEach(DOMPurify.removed, entry => {
12752
+ if (entry.element) {
12753
+ _neutralizeSubtree(entry.element);
12754
+ }
12755
+ });
12275
12756
  if (SAFE_FOR_TEMPLATES) {
12276
- _scrubTemplateExpressions(dirty);
12757
+ _scrubTemplateExpressions2(dirty);
12277
12758
  }
12278
12759
  return dirty;
12279
12760
  }
12280
12761
  /* Return sanitized string or DOM */
12281
12762
  if (RETURN_DOM) {
12282
12763
  if (SAFE_FOR_TEMPLATES) {
12283
- _scrubTemplateExpressions(body);
12764
+ _scrubTemplateExpressions2(body);
12284
12765
  }
12285
12766
  if (RETURN_DOM_FRAGMENT) {
12286
12767
  returnNode = createDocumentFragment.call(body.ownerDocument);
@@ -12310,20 +12791,28 @@
12310
12791
  }
12311
12792
  /* Sanitize final string template-safe */
12312
12793
  if (SAFE_FOR_TEMPLATES) {
12313
- arrayForEach([MUSTACHE_EXPR$1, ERB_EXPR$1, TMPLIT_EXPR$1], expr => {
12314
- serializedHTML = stringReplace(serializedHTML, expr, ' ');
12315
- });
12794
+ serializedHTML = _stripTemplateExpressions(serializedHTML);
12316
12795
  }
12317
- return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;
12796
+ return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? _createTrustedHTML(serializedHTML) : serializedHTML;
12318
12797
  };
12319
12798
  DOMPurify.setConfig = function () {
12320
12799
  let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
12321
12800
  _parseConfig(cfg);
12322
12801
  SET_CONFIG = true;
12802
+ SET_CONFIG_ALLOWED_TAGS = ALLOWED_TAGS;
12803
+ SET_CONFIG_ALLOWED_ATTR = ALLOWED_ATTR;
12323
12804
  };
12324
12805
  DOMPurify.clearConfig = function () {
12325
12806
  CONFIG = null;
12326
12807
  SET_CONFIG = false;
12808
+ SET_CONFIG_ALLOWED_TAGS = null;
12809
+ SET_CONFIG_ALLOWED_ATTR = null;
12810
+ // Drop any caller-supplied Trusted Types policy so it cannot poison later
12811
+ // `RETURN_TRUSTED_TYPE` output. The internal default policy (cached, and
12812
+ // never recreated — Trusted Types throws on duplicate names) is restored by
12813
+ // the next `_parseConfig`. See GHSA-vxr8-fq34-vvx9.
12814
+ trustedTypesPolicy = defaultTrustedTypesPolicy;
12815
+ emptyHTML = '';
12327
12816
  };
12328
12817
  DOMPurify.isValidAttribute = function (tag, attr, value) {
12329
12818
  /* Initialize shared config vars if necessary. */
@@ -12338,9 +12827,19 @@
12338
12827
  if (typeof hookFunction !== 'function') {
12339
12828
  return;
12340
12829
  }
12830
+ /* Reject unknown entry points. Without this, a non-hook key (e.g.
12831
+ * '__proto__') indexes off the prototype chain rather than a real
12832
+ * hook array, and arrayPush then writes to Object.prototype. Guard
12833
+ * with an own-property check against the known hook names. */
12834
+ if (!objectHasOwnProperty(hooks, entryPoint)) {
12835
+ return;
12836
+ }
12341
12837
  arrayPush(hooks[entryPoint], hookFunction);
12342
12838
  };
12343
12839
  DOMPurify.removeHook = function (entryPoint, hookFunction) {
12840
+ if (!objectHasOwnProperty(hooks, entryPoint)) {
12841
+ return undefined;
12842
+ }
12344
12843
  if (hookFunction !== undefined) {
12345
12844
  const index = arrayLastIndexOf(hooks[entryPoint], hookFunction);
12346
12845
  return index === -1 ? undefined : arraySplice(hooks[entryPoint], index, 1)[0];
@@ -12348,6 +12847,9 @@
12348
12847
  return arrayPop(hooks[entryPoint]);
12349
12848
  };
12350
12849
  DOMPurify.removeHooks = function (entryPoint) {
12850
+ if (!objectHasOwnProperty(hooks, entryPoint)) {
12851
+ return;
12852
+ }
12351
12853
  hooks[entryPoint] = [];
12352
12854
  };
12353
12855
  DOMPurify.removeAllHooks = function () {
@@ -39594,7 +40096,7 @@
39594
40096
  */
39595
40097
  #getTrackConfig(t) {
39596
40098
 
39597
- const format = typeFormatMap.get(t.format) || t.format;
40099
+ const format = typeFormatMap.get(t.format.toLowerCase()) || t.format;
39598
40100
 
39599
40101
  const config = {
39600
40102
  "id": t.getProperty("track"),
@@ -39693,14 +40195,9 @@
39693
40195
  config.visibilityWindow = maxWindowToDraw;
39694
40196
  }
39695
40197
 
39696
- // IGV does not support "maxWindowCoverage" in the same way as UCSC. Use to limit visibility window
39697
- if (t.hasProperty("maxWindowCoverage")) {
39698
- let maxWindowToDraw = parseInt(t.getProperty("maxWindowCoverage"), 10);
39699
- if (maxWindowToDraw > Number.MAX_SAFE_INTEGER) {
39700
- maxWindowToDraw = Number.MAX_SAFE_INTEGER;
39701
- }
39702
- config.visibilityWindow = maxWindowToDraw;
39703
- }
40198
+ // TODO - support "maxWindowCoverage"
40199
+ // if (t.hasProperty("maxWindowCoverage")) {
40200
+ // }
39704
40201
 
39705
40202
  return config
39706
40203
  }
@@ -52056,7 +52553,9 @@
52056
52553
  }
52057
52554
 
52058
52555
  /*! For license information please see cram-bundle.js.LICENSE.txt */
52059
- var gmodCRAM = (()=>{var e={24:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.toHex=function(e){let t="";for(let r=0,i=e.length;r<i;r++)t+=n[e[r]];return t};const r=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"],n=new Array(256);for(let e=0;e<256;e++)n[e]=`${r[e>>>4&15]}${r[15&e]}`;},78:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});const n=r(24),i=[0,1,3,7,15,31,63,127,255];t.default=class{constructor(e){this.stream=e,this.bitOffset=0,this.curByte=0,this.hasByte=!1;}_ensureByte(){this.hasByte||(this.curByte=this.stream.readByte(),this.hasByte=!0);}read(e){let t=0;for(;e>0;){this._ensureByte();const r=8-this.bitOffset;if(e>=r)t<<=r,t|=i[r]&this.curByte,this.hasByte=!1,this.bitOffset=0,e-=r;else {t<<=e;const n=r-e;t|=(this.curByte&i[e]<<n)>>n,this.bitOffset+=e,e=0;}}return t}seek(e){const t=e%8,r=(e-t)/8;this.bitOffset=t,this.stream.seek(r),this.hasByte=!1;}pi(){const e=new Uint8Array(6);for(let t=0;t<e.length;t++)e[t]=this.read(8);return (0, n.toHex)(e)}};},86:(e,t,r)=>{const n=r(1308).A;e.exports=n,e.exports.default=n;},500:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=r(6272),a=r(6761),s=n(r(588)),A=n(r(9685)),o=n(r(7480)),c=r(7580),d=r(2549);function l(e,t,r,n){const a=!!(n.mate||void 0!==n.mateRecordNumber&&n.mateRecordNumber!==t);r.readName||(r.readName=String(r.uniqueId),n.readName=r.readName),r.mate={sequenceId:n.sequenceId,alignmentStart:n.alignmentStart,uniqueId:n.uniqueId},n.readName&&(r.mate.readName=n.readName),n.mate||void 0!==n.mateRecordNumber||(n.mate={sequenceId:r.sequenceId,alignmentStart:r.alignmentStart,uniqueId:r.uniqueId},r.readName&&(n.mate.readName=r.readName)),r.flags|=s.default.BAM_FPAIRED,n.flags&s.default.BAM_FUNMAP&&(r.flags|=s.default.BAM_FMUNMAP),r.flags&s.default.BAM_FUNMAP&&(n.flags|=s.default.BAM_FMUNMAP),n.flags&s.default.BAM_FREVERSE&&(r.flags|=s.default.BAM_FMREVERSE),r.flags&s.default.BAM_FREVERSE&&(n.flags|=s.default.BAM_FMREVERSE),void 0===r.templateLength&&(a?function(e,t,r){const n=function t(r){const n=[r];if(void 0!==r.mateRecordNumber&&r.mateRecordNumber>=0){const a=e[r.mateRecordNumber];if(!a)throw new i.CramMalformedError("intra-slice mate record not found, this file seems malformed");n.push(...t(a));}return n}(r),a=n.map((e=>e.alignmentStart)),s=n.map((e=>e.alignmentStart+e.readLength-1)),A=Math.max(...s)-Math.min(...a)+1;A>=0&&n.forEach((e=>{if(void 0!==e.templateLength)throw new i.CramMalformedError("mate pair group has some members that have template lengths already, this file seems malformed");e.templateLength=A;}));}(e,0,r):function(e,t){const r=Math.min(e.alignmentStart,t.alignmentStart),n=Math.max(e.alignmentStart+e.readLength-1,t.alignmentStart+t.readLength-1)-r+1;e.templateLength=n,t.templateLength=n;}(r,n)),r.mateRecordNumber=void 0;}class f{constructor(e,t,r){this.container=e,this.containerPosition=t,this.sliceSize=r,this.file=e.file;}async getHeader(){const{majorVersion:e}=await this.file.getDefinition(),t=(0, c.getSectionParsers)(e),r=await this.container.getHeader(),n=await this.file.readBlock(r._endPosition+this.containerPosition);if("MAPPED_SLICE_HEADER"===n.contentType){const e=(0, d.parseItem)(n.content,t.cramMappedSliceHeader.parser,0,r._endPosition);return {...n,parsedContent:e}}if("UNMAPPED_SLICE_HEADER"===n.contentType){const e=(0, d.parseItem)(n.content,t.cramUnmappedSliceHeader.parser,0,r._endPosition);return {...n,parsedContent:e}}throw new i.CramMalformedError(`error reading slice header block, invalid content type ${n.contentType}`)}async getBlocks(){const e=await this.getHeader();let t=e._endPosition;const r=new Array(e.parsedContent.numBlocks);for(let e=0;e<r.length;e++){const n=await this.file.readBlock(t);r[e]=n,t=r[e]._endPosition;}return r}async getCoreDataBlock(){return (await this.getBlocks())[0]}async _getBlocksContentIdIndex(){const e=await this.getBlocks(),t={};return e.forEach((e=>{"EXTERNAL_DATA"===e.contentType&&(t[e.contentId]=e);})),t}async getBlockByContentId(e){return (await this._getBlocksContentIdIndex())[e]}async getReferenceRegion(){const e=new TextDecoder("utf8"),t=(await this.getHeader()).parsedContent;if(!(0, c.isMappedSliceHeader)(t))throw new Error("slice header not mapped");if(t.refSeqId<0)return;const r=await this.container.getCompressionScheme();if(void 0===r)throw new Error("compression scheme undefined");if(t.refBaseBlockId>=0){const r=await this.getBlockByContentId(t.refBaseBlockId);if(!r)throw new i.CramMalformedError("embedded reference specified, but reference block does not exist");return {seq:e.decode(r.data),start:t.refSeqStart,end:t.refSeqStart+t.refSeqSpan-1,span:t.refSeqSpan}}if(r.referenceRequired||this.file.fetchReferenceSequenceCallback){if(!this.file.fetchReferenceSequenceCallback)throw new Error("reference sequence not embedded, and seqFetch callback not provided, cannot fetch reference sequence");const e=await this.file.fetchReferenceSequenceCallback(t.refSeqId,t.refSeqStart,t.refSeqStart+t.refSeqSpan-1);if(e.length!==t.refSeqSpan)throw new i.CramArgumentError("seqFetch callback returned a reference sequence of the wrong length");return {seq:e,start:t.refSeqStart,end:t.refSeqStart+t.refSeqSpan-1,span:t.refSeqSpan}}}getAllRecords(){return this.getRecords((()=>!0))}async _fetchRecords(){const{majorVersion:e}=await this.file.getDefinition(),t=await this.container.getCompressionScheme();if(void 0===t)throw new Error("compression scheme undefined");const r=await this.getHeader(),n=await this._getBlocksContentIdIndex();if(e>1&&this.file.options.checkSequenceMD5&&(0, c.isMappedSliceHeader)(r.parsedContent)&&r.parsedContent.refSeqId>=0&&"0000000000000000"!==r.parsedContent.md5?.join("")){const e=await this.getReferenceRegion();if(e){const{seq:t,start:n,end:a}=e,s=(0, d.sequenceMD5)(t),A=r.parsedContent.md5?.map((e=>(e<16?"0":"")+e.toString(16))).join("");if(s!==A)throw new i.CramMalformedError(`MD5 checksum reference mismatch for ref ${r.parsedContent.refSeqId} pos ${n}..${a}. recorded MD5: ${A}, calculated MD5: ${s}`)}}const s=await this.getCoreDataBlock(),f={lastAlignmentStart:(0, c.isMappedSliceHeader)(r.parsedContent)?r.parsedContent.refSeqStart:0,coreBlock:{bitPosition:7,bytePosition:0},externalBlocks:{map:new Map,getCursor(e){let t=this.map.get(e);return void 0===t&&(t={bitPosition:7,bytePosition:0},this.map.set(e,t)),t}}},u=e=>{const r=t.getCodecForDataSeries(e);if(!r)throw new i.CramMalformedError(`no codec defined for ${e} data series`);return r.decode(this,s,n,f)},g=new Array(r.parsedContent.numRecords);for(let i=0;i<g.length;i+=1)try{const a=(0,A.default)(this,u,t,r,s,n,f,e,i);g[i]=new o.default({...a,uniqueId:r.contentPosition+r.parsedContent.recordCounter+i+1});}catch(e){if(e instanceof a.CramBufferOverrunError){console.warn("read attempted beyond end of buffer, file seems truncated.");break}throw e}for(let e=0;e<g.length;e+=1){const t=g[e];if(t){const{mateRecordNumber:r}=t;void 0!==r&&r>=0&&g[r]&&l(g,e,t,g[r]);}}return g}async getRecords(e){const t=this.container.filePosition+this.containerPosition;let r=this.file.featureCache.get(t.toString());r||(r=this._fetchRecords(),this.file.featureCache.set(t.toString(),r));const n=(await r).filter(e);if(n.length&&this.file.fetchReferenceSequenceCallback){const e=await this.getHeader();if((0, c.isMappedSliceHeader)(e.parsedContent)&&(e.parsedContent.refSeqId>=0||-2===e.parsedContent.refSeqId)){const t=e.parsedContent.refSeqId>=0?e.parsedContent.refSeqId:void 0,r=await this.container.getCompressionScheme();if(void 0===r)throw new Error("compression scheme undefined");const i={};for(const e of n){const r=void 0!==t?t:e.sequenceId;let n=i[r];n||(n={id:r,start:e.alignmentStart,end:Number.NEGATIVE_INFINITY,seq:null},i[r]=n);const a=e.alignmentStart+(e.lengthOnRef||e.readLength)-1;a>n.end&&(n.end=a),e.alignmentStart<n.start&&(n.start=e.alignmentStart);}await Promise.all(Object.values(i).map((async e=>{-1!==e.id&&e.start<=e.end&&this.file.fetchReferenceSequenceCallback&&(e.seq=await this.file.fetchReferenceSequenceCallback(e.id,e.start,e.end));})));for(const e of n){const n=i[void 0!==t?t:e.sequenceId];if(n?.seq){const t=n.seq;e.addReferenceSequence({...n,seq:t},r);}}}}return n}}t.default=f,"getHeader getBlocks _getBlocksContentIdIndex".split(" ").forEach((e=>{(0, d.tinyMemoize)(f,e);}));},588:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default={CRAM_FLAG_PRESERVE_QUAL_SCORES:1,CRAM_FLAG_DETACHED:2,CRAM_FLAG_MATE_DOWNSTREAM:4,CRAM_FLAG_NO_SEQ:8,CRAM_FLAG_MASK:15,CRAM_M_REVERSE:1,CRAM_M_UNMAP:2,BAM_FPAIRED:1,BAM_FPROPER_PAIR:2,BAM_FUNMAP:4,BAM_FMUNMAP:8,BAM_FREVERSE:16,BAM_FMREVERSE:32,BAM_FREAD1:64,BAM_FREAD2:128,BAM_FSECONDARY:256,BAM_FQCFAIL:512,BAM_FDUP:1024,BAM_FSUPPLEMENTARY:2048,BAM_CMATCH:0,BAM_CINS:1,BAM_CDEL:2,BAM_CREF_SKIP:3,BAM_CSOFT_CLIP:4,BAM_CHARD_CLIP:5,BAM_CPAD:6,BAM_CEQUAL:7,BAM_CDIFF:8,BAM_CBACK:9,BAM_CIGAR_STR:"MIDNSHP:XB",BAM_CIGAR_SHIFT:4,BAM_CIGAR_MASK:15,BAM_CIGAR_TYPE:246183};},632:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=n(r(4141)),a=r(6761),s=r(6272);class A extends i.default{constructor(e,t){if(super(e,t),"int"!==this.dataType)throw new s.CramUnimplementedError(`${this.dataType} decoding not yet implemented by GAMMA codec`)}decode(e,t,r,n){let i=1;for(;0===(0, a.getBits)(t.content,n.coreBlock,1);)i+=1;return ((0, a.getBits)(t.content,n.coreBlock,i-1)|1<<i-1)-this.parameters.offset}}t.default=A;},652:e=>{function t(e){return !!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}e.exports=function(e){return null!=e&&(t(e)||function(e){return "function"==typeof e.readFloatLE&&"function"==typeof e.slice&&t(e.slice(0,0))}(e)||!!e._isBuffer)};},772:()=>{},807:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=n(r(4141)),a=r(6761),s=r(6272);class A extends i.default{constructor(e,t){if(super(e,t),"int"!==this.dataType)throw new s.CramUnimplementedError(`${this.dataType} decoding not yet implemented by BETA codec`)}decode(e,t,r,n){return (0, a.getBits)(t.content,n.coreBlock,this.parameters.length)-this.parameters.offset}}t.default=A;},870:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.decode=function(e,t,r){const n=f(e),i=u(t),a=new l(n,i);for(;!("eof"in n)||!n.eof();)if(a._init_block())a._read_bunzip();else {const e=a.reader.read(32)>>>0;if(e!==a.streamCRC&&d(o.DATA_ERROR,"Bad stream CRC (got "+a.streamCRC.toString(16)+" expected "+e.toString(16)+")"),!r||!("eof"in n)||n.eof())break;a._start_bunzip(n,i);}if("getBuffer"in i)return i.getBuffer()};const i=n(r(78)),a=n(r(8761)),s=n(r(6612)),A=function(e,t){const r=e[t];for(let r=t;r>0;r--)e[r]=e[r-1];return e[0]=r,r},o={OK:0,LAST_BLOCK:-1,NOT_BZIP_DATA:-2,UNEXPECTED_INPUT_EOF:-3,UNEXPECTED_OUTPUT_EOF:-4,DATA_ERROR:-5,OUT_OF_MEMORY:-6,OBSOLETE_INPUT:-7,END_OF_BLOCK:-8},c={};c[o.LAST_BLOCK]="Bad file checksum",c[o.NOT_BZIP_DATA]="Not bzip data",c[o.UNEXPECTED_INPUT_EOF]="Unexpected input EOF",c[o.UNEXPECTED_OUTPUT_EOF]="Unexpected output EOF",c[o.DATA_ERROR]="Data error",c[o.OUT_OF_MEMORY]="Out of memory",c[o.OBSOLETE_INPUT]="Obsolete (pre 0.9.5) bzip format not supported.";const d=function(e,t){let r=c[e]||"unknown error";t&&(r+=": "+t);const n=new TypeError(r);throw n.errorCode=e,n};class l{constructor(e,t){this.writePos=this.writeCurrent=this.writeCount=0,this._start_bunzip(e,t);}_init_block(){return this._get_next_block()?(this.blockCRC=new a.default,!0):(this.writeCount=-1,!1)}_start_bunzip(e,t){const r=new Uint8Array(4);4===e.read(r,0,4)&&"BZh"===String.fromCharCode(r[0],r[1],r[2])||d(o.NOT_BZIP_DATA,"bad magic");const n=r[3]-48;(n<1||n>9)&&d(o.NOT_BZIP_DATA,"level out of range"),this.reader=new i.default(e),this.dbufSize=1e5*n,this.nextoutput=0,this.outputStream=t,this.streamCRC=0;}_get_next_block(){let e,t,r;const n=this.reader,i=n.pi();if("177245385090"===i)return !1;"314159265359"!==i&&d(o.NOT_BZIP_DATA),this.targetBlockCRC=n.read(32)>>>0,this.streamCRC=(this.targetBlockCRC^(this.streamCRC<<1|this.streamCRC>>>31))>>>0,n.read(1)&&d(o.OBSOLETE_INPUT);const a=n.read(24);a>this.dbufSize&&d(o.DATA_ERROR,"initial position out of bounds");let s=n.read(16),c=new Uint8Array(256),l=0;for(e=0;e<16;e++)if(s&1<<15-e){const i=16*e;for(r=n.read(16),t=0;t<16;t++)r&1<<15-t&&(c[l++]=i+t);}const f=n.read(3);(f<2||f>6)&&d(o.DATA_ERROR);const u=n.read(15);0===u&&d(o.DATA_ERROR);const g=new Uint8Array(256);for(e=0;e<f;e++)g[e]=e;const h=new Uint8Array(u);for(e=0;e<u;e++){for(t=0;n.read(1);t++)t>=f&&d(o.DATA_ERROR);h[e]=A(g,t);}let C,I=l+2,_=[];for(t=0;t<f;t++){const t=new Uint8Array(I),r=new Uint16Array(21);for(s=n.read(5),e=0;e<I;e++){for(;(s<1||s>20)&&d(o.DATA_ERROR),n.read(1);)n.read(1)?s--:s++;t[e]=s;}var m,B;for(m=B=t[0],e=1;e<I;e++)t[e]>B?B=t[e]:t[e]<m&&(m=t[e]);C={},_.push(C),C.permute=new Uint16Array(258),C.limit=new Uint32Array(22),C.base=new Uint32Array(21),C.minLen=m,C.maxLen=B;let i=0;for(e=m;e<=B;e++)for(r[e]=C.limit[e]=0,s=0;s<I;s++)t[s]===e&&(C.permute[i++]=s);for(e=0;e<I;e++)r[t[e]]++;for(i=s=0,e=m;e<B;e++)i+=r[e],C.limit[e]=i-1,i<<=1,s+=r[e],C.base[e+1]=i-s;C.limit[B+1]=Number.MAX_VALUE,C.limit[B]=i+r[B]-1,C.base[m]=0;}const p=new Uint32Array(256);for(e=0;e<256;e++)g[e]=e;let w,E=0,Q=0,y=0;const b=this.dbuf=new Uint32Array(this.dbufSize);for(I=0;;){for(I--||(I=49,y>=u&&d(o.DATA_ERROR),C=_[h[y++]]),e=C.minLen,t=n.read(e);e>C.maxLen&&d(o.DATA_ERROR),!(t<=C.limit[e]);e++)t=t<<1|n.read(1);t-=C.base[e],(t<0||t>=258)&&d(o.DATA_ERROR);const r=C.permute[t];if(0!==r&&1!==r){if(E)for(E=0,Q+s>this.dbufSize&&d(o.DATA_ERROR),w=c[g[0]],p[w]+=s;s--;)b[Q++]=w;if(r>l)break;Q>=this.dbufSize&&d(o.DATA_ERROR),e=r-1,w=A(g,e),w=c[w],p[w]++,b[Q++]=w;}else E||(E=1,s=0),s+=0===r?E:2*E,E<<=1;}for((a<0||a>=Q)&&d(o.DATA_ERROR),t=0,e=0;e<256;e++)r=t+p[e],p[e]=t,t=r;for(e=0;e<Q;e++)w=255&b[e],b[p[w]]|=e<<8,p[w]++;let D=0,S=0,k=0;return Q&&(D=b[a],S=255&D,D>>=8,k=-1),this.writePos=D,this.writeCurrent=S,this.writeCount=Q,this.writeRun=k,!0}_read_bunzip(e,t){let r,n,i;if(this.writeCount<0)return 0;let a=this.dbuf,s=this.writePos,A=this.writeCurrent,c=this.writeCount,l=(this.outputsize,this.writeRun);for(;c;){for(c--,n=A,s=a[s],A=255&s,s>>=8,3===l++?(r=A,i=n,A=-1):(r=1,i=A),this.blockCRC.updateCRCRun(i,r);r--;)this.outputStream.writeByte(i),this.nextoutput++;A!=n&&(l=0);}return this.writeCount=c,this.blockCRC.getCRC()!==this.targetBlockCRC&&d(o.DATA_ERROR,"Bad block CRC (got "+this.blockCRC.getCRC().toString(16)+" expected "+this.targetBlockCRC.toString(16)+")"),this.nextoutput}}const f=function(e){if("readByte"in e)return e;const t=new s.default;return t.pos=0,t.readByte=function(){return e[this.pos++]},t.seek=function(e){this.pos=e;},t.eof=function(){return this.pos>=e.length},t},u=function(e){const t=new s.default;let r=!0;if(e)if("number"==typeof e)t.buffer=new Uint8Array(e),r=!1;else {if("writeByte"in e)return e;t.buffer=e,r=!1;}else t.buffer=new Uint8Array(16384);return t.pos=0,t.writeByte=function(e){if(r&&this.pos>=this.buffer.length){const e=new Uint8Array(2*this.buffer.length);e.set(this.buffer),this.buffer=e;}this.buffer[this.pos++]=e;},t.getBuffer=function(){if(this.pos!==this.buffer.length){if(!r)throw new TypeError("outputsize does not match decoded input");const e=new Uint8Array(this.pos);e.set(this.buffer.slice(0,this.pos)),this.buffer=e;}return this.buffer},t._coerced=!0,t};t.default=l;},1064:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=class{constructor(e){this.blob=e,this.size=e.size;}async read(e,t=0){if(!e)return new Uint8Array(0);const r=t,n=r+e;return new Uint8Array(await this.blob.slice(r,n).arrayBuffer())}async readFile(e){const t="string"==typeof e?e:e?.encoding;if("utf8"===t)return this.blob.text();if(t)throw new Error(`unsupported encoding: ${t}`);return new Uint8Array(await this.blob.arrayBuffer())}async stat(){return {size:this.size}}async close(){}};},1307:function(e,t,r){var n;n=e=>(()=>{var t=[,e=>{e.exports="data:application/wasm;base64,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IgENAAsLIAJCf4UL1RACDH8CfgJAAkAgACgCJEUNACAAKAIAIQIMAQtBACECIABBADoAKCAAQgA3AwAgAEIANwMYIABByABqQQBB5AAQhoCAgAAaIABBrAFqQQw2AgALIAAgASgCBCIDNgIQIABBsAFqIQQgAEHgAGohBSAAQcgAaiEGIABBtgFqIQcgAEGoAWohCCABKAIQIQkCQAJAAkACQANAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAIOCgECAAQFBgcICQoPCyABKAIAIQogACgCqAEhAiAAKAKsASELIAEoAgQhDCABKAIIIQ0MAgsgCCAAKAKoASIMakEIaiABKAIAIAEoAgQiAmogASgCCCACayICIAAoAqwBIAxrIgwgAiAMSRsiAhCHgICAABogASABKAIEIAJqNgIEQQAhDCAAQQAgACgCqAEgAmoiAiACIAAoAqwBIgtGGzYCqAEgAiALRw0RIABBATYCAAJAIARBqIiAgABBBhCEgICAAEUNAEEFIQwMEgsgB0ECQQAQjYCAgAAgACgAuAFHDRBBBiEMIActAAANESAAIAAtALcBIgI2AiAgAkEESw0RQQEgAnRBE3FFDRELIAEoAgQiDCABKAIIIg1GDQ4CQCABKAIAIgogDGotAAAiCw0AIAAgDDYCECABIAxBAWo2AgRBBiECDAwLQQAhAiAAQQA2AqgBIABBAjYCACAAIAtBAnRBBGoiCzYCrAEgACALNgJACyAIIAJqQQhqIAogDGogDSAMayIMIAsgAmsiAiAMIAJJGyICEIeAgIAAGiABIAIgASgCBGo2AgRBACEMIABBACAAKAKoASACaiICIAIgACgCrAEiC0YbNgKoASACIAtHDQ8gACACQXxqIgI2AqwBQQchDCAEIAJBABCNgICAACAAIAAoAqwBIgtqQbABaigAAEcNDyAAQQI2AqgBIAAtALEBIgJBP3ENDAJAAkAgAkHAAHFFDQAgACAEIAggCxCRgICAAEEBRw0RIAAgACkDCDcDMCAALQCxASECDAELIABCfzcDMAtCfyEOAkAgAkEYdEEYdUF/Sg0AIAAgBCAIIAAoAqwBEJGAgIAAQQFHDRAgACkDCCEOCyAAIA43AzggACgCrAEiDSAAKAKoASICa0ECSQ0PIAAgAkEBaiIKNgKoASAIIAJqQQhq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IgM2AhAgACAOQQh0IAAoAgwgCWotAAByIg42AgQgAyEJCwJAAkAgDiALQQt2IA8vAQAiCmwiA08iEg0AIAAgAzYCACAKQYAQIAprQQV2aiEKDAELIAAgDiADayIONgIEIAAgCyADayIDNgIAIAogCkEFdmshCkEAIQ0LIA8gCjsBACANIBFzIQ0gBEEBdCASciIEQYACSQ0ACwsgACACQQFqNgIgIAAoAhggAmogBDoAAAJAIAAoAiQgACgCICICTw0AIAAgAjYCJAtBACEDAkAgACgCZCIEQQRJDQACQCAEQQlLDQAgBEF9aiEDDAELIARBemohAwsgACADNgJkDAELIAAgDiADayIONgIEIAAgBCADayIDNgIAIA0gDyAPQQV2azsBACAAIApBAXRqIg9B+ANqIQQCQAJAIANB////B00NACAJIQoMAQsgACADQQh0IgM2AgAgACAJQQFqIgo2AhAgACAOQQh0IAAoAgwgCWotAAByIg42AgQLAkACQCAOIANBC3YgBC8BACINbCIJSQ0AIAAgDiAJayIONgIEIAAgAyAJayIDNgIAIAQgDSANQQV2azsBACAPQZAEaiENAkACQCADQf///wdNDQAgCiEQDAELIAAgA0EIdCIDNgIAIAAgCkEBaiIQNgIQIAAgDkEIdCAAKAIMIApqLQAAciIONgIECwJAAkAgDiADQQt2IA0vAQAiCWwiBE8NACANIAlBgBAgCWtBBXZqOwEAIAxB2ARqIQMCQCAEQf///wdLDQAgACAEQQh0IgQ2AgAgACAQQQFqNgIQIAAgDkEIdCAAKAIMIBBqLQAAciIONgIECwJAIA4gBEELdiADLwEAIg1sIglJDQAgACAOIAlrNgIEIAAgBCAJazYCACADIA0gDUEFdms7AQAMAgsgAyANQYAQIA1rQQV2ajsBACAAIAk2AgAgAEEBNgJoIABBCUELIAAoAmRBB0kbNgJkDAMLIAAgDiAEayIONgIEIA0gCSAJQQV2azsBACAPQagEaiENAkACQCADIARrIgNB////B00NACAQIQoMAQsgACADQQh0IgM2AgAgACAQQQFqIgo2AhAgACAOQQh0IAAoAgwgEGotAAByIg42AgQLAkACQCAOIANBC3YgDS8BACIEbCIJTw0AIAAgCTYCACANIARBgBAgBGtBBXZqOwEAIAAoAlghAwwBCyAAIA4gCWsiDjYCBCANIAQgBEEFdms7AQAgD0HABGohBAJAIAMgCWsiA0H///8HSw0AIAAgA0EIdCIDNgIAIAAgCkEBajYCECAAIA5BCHQgACgCDCAKai0AAHIiDjYCBAsCQAJAIA4gA0ELdiAELwEAIg1sIglPDQAgACAJNgIAIAQgDUGAECANa0EFdmo7AQAgACgCXCEDDAELIAAgDiAJazYCBCAAIAMgCWs2AgAgACgCYCEDIAAgACgCXDYCYCAEIA0gDUEFdms7AQALIAAgACgCWDYCXAsgACAAKAJUNgJYIAAgAzYCVAsgAEEIQQsgACgCZEEHSRs2AmQgACAHIAsQn4CAgAAMAQsgBCANQYAQIA1rQQV2ajsBACAAIAk2AgAgACAAKAJcNgJgIAAgACkCVDcCWCAAQQdBCiAAKAJkQQdJGzYCZCAAIAUgCxCfgICAACAAKAJoIgNBfmpBAyADQQZJGyEKIAAoAgAhA0EBIQ4DQCAAIApBB3RqIA5BAXQiDmpB2AdqIQ0CQAJAIANBgICACEkNACAAKAIEIQQMAQsgACADQQh0IgM2AgAgACAAKAIQIgRBAWo2AhAgACAAKAIEQQh0IAQgACgCDGotAAByIgQ2AgQLAkACQCAEIANBC3YgDS8BACIJbCIPSQ0AIAAgBCAPayIENgIEIAAgAyAPayIDNgIAIA0gCSAJQQV2azsBACAOQQFyIQ4MAQsgACAPNgIAIA0gCUGAECAJa0EFdmo7AQAgDyEDCyAOQcAASQ0ACwJAIA5BQGoiCUEDSw0AIAAgCTYCVAwBCyAAIA5BAXFBAnIiDTYCVCAJQQF2IQ8CQCAJQQ1LDQAgACANIA9Bf2oiDHQiCzYCVEEBIQ0gCCALQQF0akGEC2ohEEE/IA5rIRFBACEPA0AgECARIA1qQQF0aiEOAkACQCADQf///wdNDQAgAyEKDAELIAAgA0EIdCIKNgIAIAAgACgCECIDQQFqNgIQIAAgBEEIdCADIAAoAgxqLQAAciIENgIECwJAAkAgBCAKQQt2IA4vAQAiCWwiA0kNACAAIAQgA2siBDYCBCAAIAogA2siAzYCACAOIAkgCUEFdms7AQAgAEEBIA90IAtqIgs2AlQgDUEBdEEBciENDAELIAAgAzYCACAOIAlBgBAgCWtBBXZqOwEAIA1BAXQhDQsgDCAPQQFqIg9HDQAMAgsLIA9Be2ohDgNAAkAgA0H///8HSw0AIAAgA0EIdCIDNgIAIAAgACgCECIJQQFqNgIQIARBCHQgCSAAKAIMai0AAHIhBAsgACADQQF2IgM2AgAgACAEIANrIgRBH3UiCSANQQF0akEBaiINNgJUIAAgCSADcSAEaiIENgIEIA5Bf2oiDg0ACyAAIA1BBHQiCzYCVEEAIQ9BASEOA0AgACAOQQF0Ig5qQbwNaiENAkACQCADQf///wdNDQAgAyEKDAELIAAgA0EIdCIKNgIAIAAgACgCECIDQQFqNgIQIAAgBEEIdCADIAAoAgxqLQAAciIENgIECwJAAkAgBCAKQQt2IA0vAQAiCWwiA0kNACAAIAQgA2siBDYCBCAAIAogA2siAzYCACANIAkgCUEFdms7AQAgAEEBIA90IAtqIgs2AlQgDkEBciEODAELIAAgAzYCACANIAlBgBAgCWtBBXZqOwEACyAPQQFqIg9BBEcNAAsLAkAgASAGIAAoAlQQnoCAgAANAEEADwsgACgCICECCyACIAAoAihJDQALC0EBIQMCQCAAKAIAIgRB////B0sNACAAIARBCHQ2AgBBASEDIAAgACgCECIEQQFqNgIQIAAgACgCBEEIdCAEIAAoAgxqLQAAcjYCBAsgAwtwAQF/AkBBqN4BEICAgIAAIgJFDQAgAkE0aiABNgIAIAJBPGogADYCAAJAAkACQCAAQX9qDgIAAQILIAIgARCAgICAACIANgIYIAANASACEIKAgIAADAILIAJBADYCGCACQThqQQA2AgALIAIPC0EAC9IBAQJ/QQYhAgJAIAFBJ0sNACAAQTBqIAFBAXFBAnIgAUEBdkELanQiATYCAAJAAkAgAEE8aigCACIDRQ0AQQQhAiABIABBNGooAgBLDQIgAEEsaiABNgIAIANBAkcNACAAQThqIgMoAgAgAU8NACAAIAE2AjggACgCGBCCgICAACAAIAAoAjAQgICAgAAiATYCGCABDQBBAyECDAELQQAhAiAAQQA2AkAgAEHQAGpBAToAACAAQegAakEANgIAIABB5N0BaiEDCyADQQA2AgALIAILIwACQCAAQTxqKAIARQ0AIAAoAhgQgoCAgAALIAAQgoCAgAAL9QEBBH9BACEDAkAgACgCDCACTQ0AIAAoAhggAk0NACABIAEoAgAiBCAAKAIQIAAoAggiBWsiBiAEIAYgBEkbIgRrNgIAIAUgAkF/c2ohAQJAIAUgAksNACAAKAIUIAFqIQELIAAoAgAiAiABai0AACEGQQEhAyAAIAVBAWo2AgggAiAFaiAGOgAAAkAgBEF/aiICRQ0AA0AgACgCACIFQQAgAUEBaiIBIAEgACgCFEYbIgFqLQAAIQQgACAAKAIIIgZBAWo2AgggBSAGaiAEOgAAIAJBf2oiAg0ACwsgACgCDCAAKAIIIgFPDQAgACABNgIMCyADC8gEAQd/AkACQCAAKAIAIgNBgICACEkNACAAKAIEIQQMAQsgACADQQh0IgM2AgAgACAAKAIQIgVBAWo2AhAgACAAKAIEQQh0IAUgACgCDGotAAByIgQ2AgQLAkACQCAEIANBC3YgAS8BACIGbCIFTw0AIAEgBkGAECAGa0EFdmo7AQAgASACQQR0akEEaiEHQQghCEECIQkMAQsgACAEIAVrIgQ2AgQgASAGIAZBBXZrOwEAAkAgAyAFayIDQf///wdLDQAgACADQQh0IgM2AgAgACAAKAIQIgVBAWo2AhAgACAEQQh0IAUgACgCDGotAAByIgQ2AgQLAkAgBCADQQt2IAEvAQIiBmwiBU8NACABIAZBgBAgBmtBBXZqOwECIAEgAkEEdGpBhAJqIQdBCCEIQQohCQwBCyAAIAQgBWsiBDYCBCABIAYgBkEFdms7AQIgAUGEBGohByADIAVrIQVBgAIhCEESIQkLIABB6ABqIAk2AgBBASEBA0AgByABQQF0IgFqIQMCQAJAIAVB////B00NACAFIQIMAQsgACAFQQh0IgI2AgAgACAAKAIQIgVBAWo2AhAgACAEQQh0IAUgACgCDGotAAByIgQ2AgQLAkACQCAEIAJBC3YgAy8BACIGbCIFSQ0AIAAgBCAFayIENgIEIAAgAiAFayIFNgIAIAMgBiAGQQV2azsBACABQQFyIQEMAQsgACAFNgIAIAMgBkGAECAGa0EFdmo7AQALIAEgCEkNAAsgAEHoAGogASAIayAJajYCAAsLNQEAQYAICy4IAAAAEAAAABgAAAAgAAAAKAAAADAAAABAAAAAUAAAAIAAAAAAAQAA/Td6WFoA";},t=>{t.exports=e;}],r={};function n(e){var i=r[e];if(void 0!==i)return i.exports;var a=r[e]={exports:{}};return t[e](a,a.exports,n),a.exports}n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]});},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0});};var i={};return (()=>{n.r(i),n.d(i,{XzReadableStream:()=>a});var e=n(1);const t=globalThis.ReadableStream||n(2).ReadableStream;class r{constructor(e){this.exports=e.exports,this.memory=this.exports.memory,this.ptr=this.exports.create_context(),this._refresh(),this.bufSize=this.mem32[0],this.inStart=this.mem32[1]-this.ptr,this.inEnd=this.inStart+this.bufSize,this.outStart=this.mem32[4]-this.ptr;}supplyInput(e){this._refresh(),this.mem8.subarray(this.inStart,this.inEnd).set(e,0),this.exports.supply_input(this.ptr,e.byteLength),this._refresh();}getNextOutput(){const e=this.exports.get_next_output(this.ptr);if(this._refresh(),0!==e&&1!==e)throw new Error(`get_next_output failed with error code ${e}`);return {outChunk:this.mem8.slice(this.outStart,this.outStart+this.mem32[5]),finished:1===e}}needsMoreInput(){return this.mem32[2]===this.mem32[3]}outputBufferIsFull(){return this.mem32[5]===this.bufSize}resetOutputBuffer(){this.outPos=this.mem32[5]=0;}dispose(){this.exports.destroy_context(this.ptr),this.exports=null;}_refresh(){this.memory.buffer!==this.mem8?.buffer&&(this.mem8=new Uint8Array(this.memory.buffer,this.ptr),this.mem32=new Uint32Array(this.memory.buffer,this.ptr));}}class a extends t{static _moduleInstancePromise;static _moduleInstance;static async _getModuleInstance(){const t=e.replace("data:application/wasm;base64,",""),r=Uint8Array.from(atob(t),(e=>e.charCodeAt(0))).buffer,n=await WebAssembly.instantiate(r,{});a._moduleInstance=n.instance;}constructor(e){let t,n=null;const i=e.getReader();super({async start(e){a._moduleInstance||await(a._moduleInstancePromise||(a._moduleInstancePromise=a._getModuleInstance())),t=new r(a._moduleInstance);},async pull(e){if(t.needsMoreInput()){if(null===n||0===n.byteLength){const{done:e,value:t}=await i.read();e||(n=t);}const e=Math.min(t.bufSize,n.byteLength);t.supplyInput(n.subarray(0,e)),n=n.subarray(e);}const r=t.getNextOutput();e.enqueue(r.outChunk),t.resetOutputBuffer(),r.finished&&(t.dispose(),e.close());},cancel:()=>(t.dispose(),i.cancel())});}}})(),i})(),e.exports=n(r(772));},1308:(e,t)=>{let r=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];"undefined"!=typeof Int32Array&&(r=new Int32Array(r)),t.A=(e,t)=>{let n=0===t?0:-1^t;for(let t=0;t<e.length;t++)n=r[255&(n^e[t])]^n>>>8;return -1^n};},1447:(e,t,r)=>{var n=r(9805),i=r(3269),a=r(4823),s=r(7293),A=r(1998),o=-2,c=12,d=30;function l(e){return (e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function f(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new n.Buf16(320),this.work=new n.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0;}function u(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=1,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new n.Buf32(852),t.distcode=t.distdyn=new n.Buf32(592),t.sane=1,t.back=-1,0):o}function g(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,u(e)):o}function h(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?o:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,g(e))):o}function C(e,t){var r,n;return e?(n=new f,e.state=n,n.window=null,0!==(r=h(e,t))&&(e.state=null),r):o}var I,_,m=!0;function B(e){if(m){var t;for(I=new n.Buf32(512),_=new n.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(A(1,e.lens,0,288,I,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;A(2,e.lens,0,32,_,0,e.work,{bits:5}),m=!1;}e.lencode=I,e.lenbits=9,e.distcode=_,e.distbits=5;}function p(e,t,r,i){var a,s=e.state;return null===s.window&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new n.Buf8(s.wsize)),i>=s.wsize?(n.arraySet(s.window,t,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):((a=s.wsize-s.wnext)>i&&(a=i),n.arraySet(s.window,t,r-i,a,s.wnext),(i-=a)?(n.arraySet(s.window,t,r-i,i,0),s.wnext=i,s.whave=s.wsize):(s.wnext+=a,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=a))),0}t.inflateReset=g,t.inflateReset2=h,t.inflateResetKeep=u,t.inflateInit=function(e){return C(e,15)},t.inflateInit2=C,t.inflate=function(e,t){var r,f,u,g,h,C,I,_,m,w,E,Q,y,b,D,S,k,v,R,F,M,N,x,L,O=0,T=new n.Buf8(4),P=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return o;(r=e.state).mode===c&&(r.mode=13),h=e.next_out,u=e.output,I=e.avail_out,g=e.next_in,f=e.input,C=e.avail_in,_=r.hold,m=r.bits,w=C,E=I,N=0;e:for(;;)switch(r.mode){case 1:if(0===r.wrap){r.mode=13;break}for(;m<16;){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}if(2&r.wrap&&35615===_){r.check=0,T[0]=255&_,T[1]=_>>>8&255,r.check=a(r.check,T,2,0),_=0,m=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&_)<<8)+(_>>8))%31){e.msg="incorrect header check",r.mode=d;break}if(8!=(15&_)){e.msg="unknown compression method",r.mode=d;break}if(m-=4,M=8+(15&(_>>>=4)),0===r.wbits)r.wbits=M;else if(M>r.wbits){e.msg="invalid window size",r.mode=d;break}r.dmax=1<<M,e.adler=r.check=1,r.mode=512&_?10:c,_=0,m=0;break;case 2:for(;m<16;){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}if(r.flags=_,8!=(255&r.flags)){e.msg="unknown compression method",r.mode=d;break}if(57344&r.flags){e.msg="unknown header flags set",r.mode=d;break}r.head&&(r.head.text=_>>8&1),512&r.flags&&(T[0]=255&_,T[1]=_>>>8&255,r.check=a(r.check,T,2,0)),_=0,m=0,r.mode=3;case 3:for(;m<32;){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}r.head&&(r.head.time=_),512&r.flags&&(T[0]=255&_,T[1]=_>>>8&255,T[2]=_>>>16&255,T[3]=_>>>24&255,r.check=a(r.check,T,4,0)),_=0,m=0,r.mode=4;case 4:for(;m<16;){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}r.head&&(r.head.xflags=255&_,r.head.os=_>>8),512&r.flags&&(T[0]=255&_,T[1]=_>>>8&255,r.check=a(r.check,T,2,0)),_=0,m=0,r.mode=5;case 5:if(1024&r.flags){for(;m<16;){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}r.length=_,r.head&&(r.head.extra_len=_),512&r.flags&&(T[0]=255&_,T[1]=_>>>8&255,r.check=a(r.check,T,2,0)),_=0,m=0;}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&((Q=r.length)>C&&(Q=C),Q&&(r.head&&(M=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),n.arraySet(r.head.extra,f,g,Q,M)),512&r.flags&&(r.check=a(r.check,f,Q,g)),C-=Q,g+=Q,r.length-=Q),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===C)break e;Q=0;do{M=f[g+Q++],r.head&&M&&r.length<65536&&(r.head.name+=String.fromCharCode(M));}while(M&&Q<C);if(512&r.flags&&(r.check=a(r.check,f,Q,g)),C-=Q,g+=Q,M)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=8;case 8:if(4096&r.flags){if(0===C)break e;Q=0;do{M=f[g+Q++],r.head&&M&&r.length<65536&&(r.head.comment+=String.fromCharCode(M));}while(M&&Q<C);if(512&r.flags&&(r.check=a(r.check,f,Q,g)),C-=Q,g+=Q,M)break e}else r.head&&(r.head.comment=null);r.mode=9;case 9:if(512&r.flags){for(;m<16;){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}if(_!==(65535&r.check)){e.msg="header crc mismatch",r.mode=d;break}_=0,m=0;}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=c;break;case 10:for(;m<32;){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}e.adler=r.check=l(_),_=0,m=0,r.mode=11;case 11:if(0===r.havedict)return e.next_out=h,e.avail_out=I,e.next_in=g,e.avail_in=C,r.hold=_,r.bits=m,2;e.adler=r.check=1,r.mode=c;case c:if(5===t||6===t)break e;case 13:if(r.last){_>>>=7&m,m-=7&m,r.mode=27;break}for(;m<3;){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}switch(r.last=1&_,m-=1,3&(_>>>=1)){case 0:r.mode=14;break;case 1:if(B(r),r.mode=20,6===t){_>>>=2,m-=2;break e}break;case 2:r.mode=17;break;case 3:e.msg="invalid block type",r.mode=d;}_>>>=2,m-=2;break;case 14:for(_>>>=7&m,m-=7&m;m<32;){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}if((65535&_)!=(_>>>16^65535)){e.msg="invalid stored block lengths",r.mode=d;break}if(r.length=65535&_,_=0,m=0,r.mode=15,6===t)break e;case 15:r.mode=16;case 16:if(Q=r.length){if(Q>C&&(Q=C),Q>I&&(Q=I),0===Q)break e;n.arraySet(u,f,g,Q,h),C-=Q,g+=Q,I-=Q,h+=Q,r.length-=Q;break}r.mode=c;break;case 17:for(;m<14;){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}if(r.nlen=257+(31&_),_>>>=5,m-=5,r.ndist=1+(31&_),_>>>=5,m-=5,r.ncode=4+(15&_),_>>>=4,m-=4,r.nlen>286||r.ndist>30){e.msg="too many length or distance symbols",r.mode=d;break}r.have=0,r.mode=18;case 18:for(;r.have<r.ncode;){for(;m<3;){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}r.lens[P[r.have++]]=7&_,_>>>=3,m-=3;}for(;r.have<19;)r.lens[P[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,x={bits:r.lenbits},N=A(0,r.lens,0,19,r.lencode,0,r.work,x),r.lenbits=x.bits,N){e.msg="invalid code lengths set",r.mode=d;break}r.have=0,r.mode=19;case 19:for(;r.have<r.nlen+r.ndist;){for(;S=(O=r.lencode[_&(1<<r.lenbits)-1])>>>16&255,k=65535&O,!((D=O>>>24)<=m);){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}if(k<16)_>>>=D,m-=D,r.lens[r.have++]=k;else {if(16===k){for(L=D+2;m<L;){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}if(_>>>=D,m-=D,0===r.have){e.msg="invalid bit length repeat",r.mode=d;break}M=r.lens[r.have-1],Q=3+(3&_),_>>>=2,m-=2;}else if(17===k){for(L=D+3;m<L;){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}m-=D,M=0,Q=3+(7&(_>>>=D)),_>>>=3,m-=3;}else {for(L=D+7;m<L;){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}m-=D,M=0,Q=11+(127&(_>>>=D)),_>>>=7,m-=7;}if(r.have+Q>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=d;break}for(;Q--;)r.lens[r.have++]=M;}}if(r.mode===d)break;if(0===r.lens[256]){e.msg="invalid code -- missing end-of-block",r.mode=d;break}if(r.lenbits=9,x={bits:r.lenbits},N=A(1,r.lens,0,r.nlen,r.lencode,0,r.work,x),r.lenbits=x.bits,N){e.msg="invalid literal/lengths set",r.mode=d;break}if(r.distbits=6,r.distcode=r.distdyn,x={bits:r.distbits},N=A(2,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,x),r.distbits=x.bits,N){e.msg="invalid distances set",r.mode=d;break}if(r.mode=20,6===t)break e;case 20:r.mode=21;case 21:if(C>=6&&I>=258){e.next_out=h,e.avail_out=I,e.next_in=g,e.avail_in=C,r.hold=_,r.bits=m,s(e,E),h=e.next_out,u=e.output,I=e.avail_out,g=e.next_in,f=e.input,C=e.avail_in,_=r.hold,m=r.bits,r.mode===c&&(r.back=-1);break}for(r.back=0;S=(O=r.lencode[_&(1<<r.lenbits)-1])>>>16&255,k=65535&O,!((D=O>>>24)<=m);){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}if(S&&!(240&S)){for(v=D,R=S,F=k;S=(O=r.lencode[F+((_&(1<<v+R)-1)>>v)])>>>16&255,k=65535&O,!(v+(D=O>>>24)<=m);){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}_>>>=v,m-=v,r.back+=v;}if(_>>>=D,m-=D,r.back+=D,r.length=k,0===S){r.mode=26;break}if(32&S){r.back=-1,r.mode=c;break}if(64&S){e.msg="invalid literal/length code",r.mode=d;break}r.extra=15&S,r.mode=22;case 22:if(r.extra){for(L=r.extra;m<L;){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}r.length+=_&(1<<r.extra)-1,_>>>=r.extra,m-=r.extra,r.back+=r.extra;}r.was=r.length,r.mode=23;case 23:for(;S=(O=r.distcode[_&(1<<r.distbits)-1])>>>16&255,k=65535&O,!((D=O>>>24)<=m);){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}if(!(240&S)){for(v=D,R=S,F=k;S=(O=r.distcode[F+((_&(1<<v+R)-1)>>v)])>>>16&255,k=65535&O,!(v+(D=O>>>24)<=m);){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}_>>>=v,m-=v,r.back+=v;}if(_>>>=D,m-=D,r.back+=D,64&S){e.msg="invalid distance code",r.mode=d;break}r.offset=k,r.extra=15&S,r.mode=24;case 24:if(r.extra){for(L=r.extra;m<L;){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}r.offset+=_&(1<<r.extra)-1,_>>>=r.extra,m-=r.extra,r.back+=r.extra;}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=d;break}r.mode=25;case 25:if(0===I)break e;if(Q=E-I,r.offset>Q){if((Q=r.offset-Q)>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=d;break}Q>r.wnext?(Q-=r.wnext,y=r.wsize-Q):y=r.wnext-Q,Q>r.length&&(Q=r.length),b=r.window;}else b=u,y=h-r.offset,Q=r.length;Q>I&&(Q=I),I-=Q,r.length-=Q;do{u[h++]=b[y++];}while(--Q);0===r.length&&(r.mode=21);break;case 26:if(0===I)break e;u[h++]=r.length,I--,r.mode=21;break;case 27:if(r.wrap){for(;m<32;){if(0===C)break e;C--,_|=f[g++]<<m,m+=8;}if(E-=I,e.total_out+=E,r.total+=E,E&&(e.adler=r.check=r.flags?a(r.check,u,E,h-E):i(r.check,u,E,h-E)),E=I,(r.flags?_:l(_))!==r.check){e.msg="incorrect data check",r.mode=d;break}_=0,m=0;}r.mode=28;case 28:if(r.wrap&&r.flags){for(;m<32;){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}if(_!==(4294967295&r.total)){e.msg="incorrect length check",r.mode=d;break}_=0,m=0;}r.mode=29;case 29:N=1;break e;case d:N=-3;break e;case 31:return -4;default:return o}return e.next_out=h,e.avail_out=I,e.next_in=g,e.avail_in=C,r.hold=_,r.bits=m,(r.wsize||E!==e.avail_out&&r.mode<d&&(r.mode<27||4!==t))&&p(e,e.output,e.next_out,E-e.avail_out)?(r.mode=31,-4):(w-=e.avail_in,E-=e.avail_out,e.total_in+=w,e.total_out+=E,r.total+=E,r.wrap&&E&&(e.adler=r.check=r.flags?a(r.check,u,E,e.next_out-E):i(r.check,u,E,e.next_out-E)),e.data_type=r.bits+(r.last?64:0)+(r.mode===c?128:0)+(20===r.mode||15===r.mode?256:0),(0===w&&0===E||4===t)&&0===N&&(N=-5),N)},t.inflateEnd=function(e){if(!e||!e.state)return o;var t=e.state;return t.window&&(t.window=null),e.state=null,0},t.inflateGetHeader=function(e,t){var r;return e&&e.state&&2&(r=e.state).wrap?(r.head=t,t.done=!1,0):o},t.inflateSetDictionary=function(e,t){var r,n=t.length;return e&&e.state?0!==(r=e.state).wrap&&11!==r.mode?o:11===r.mode&&i(1,t,n,0)!==r.check?-3:p(e,t,n,n)?(r.mode=31,-4):(r.havedict=1,0):o},t.inflateInfo="pako inflate (from Nodeca project)";},1492:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=n(r(4141)),a=r(6761),s=r(6272);class A extends i.default{constructor(e,t){if(super(e,t),"int"!==this.dataType)throw new s.CramUnimplementedError(`${this.dataType} decoding not yet implemented by SUBEXP codec`)}decode(e,t,r,n){let i,s,A=0;for(;(0, a.getBits)(t.content,n.coreBlock,1);)A+=1;return 0===A?(i=this.parameters.K,s=(0, a.getBits)(t.content,n.coreBlock,i)):(i=A+this.parameters.K-1,s=1<<i|(0, a.getBits)(t.content,n.coreBlock,i)),s-this.parameters.offset}}t.default=A;},1558:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r,n){let A=e.getInt(),o=e.getInt(),c=e.getInt(),d=e.getInt();const l=n.remaining(),f=-4&l;for(let i=0;i<f;i+=4){const l=t.R[s.default.get(A,a.TF_SHIFT)],f=t.R[s.default.get(o,a.TF_SHIFT)],u=t.R[s.default.get(c,a.TF_SHIFT)],g=t.R[s.default.get(d,a.TF_SHIFT)];n.putAt(i,l),n.putAt(i+1,f),n.putAt(i+2,u),n.putAt(i+3,g),A=s.default.advanceSymbolStep(A,r[255&l],a.TF_SHIFT),o=s.default.advanceSymbolStep(o,r[255&f],a.TF_SHIFT),c=s.default.advanceSymbolStep(c,r[255&u],a.TF_SHIFT),d=s.default.advanceSymbolStep(d,r[255&g],a.TF_SHIFT),A=s.default.renormalize(A,e),o=s.default.renormalize(o,e),c=s.default.renormalize(c,e),d=s.default.renormalize(d,e);}let u;switch(n.setPosition(f),3&l){case 0:break;case 1:u=t.R[s.default.get(A,a.TF_SHIFT)],s.default.advanceSymbol(A,e,r[255&u],a.TF_SHIFT),n.put(u);break;case 2:u=t.R[s.default.get(A,a.TF_SHIFT)],s.default.advanceSymbol(A,e,r[255&u],a.TF_SHIFT),n.put(u),u=t.R[s.default.get(o,a.TF_SHIFT)],s.default.advanceSymbol(o,e,r[255&u],a.TF_SHIFT),n.put(u);break;case 3:u=t.R[s.default.get(A,a.TF_SHIFT)],s.default.advanceSymbol(A,e,r[255&u],a.TF_SHIFT),n.put(u),u=t.R[s.default.get(o,a.TF_SHIFT)],s.default.advanceSymbol(o,e,r[255&u],a.TF_SHIFT),n.put(u),u=t.R[s.default.get(c,a.TF_SHIFT)],s.default.advanceSymbol(c,e,r[255&u],a.TF_SHIFT),n.put(u);break;default:throw new i.CramMalformedError("invalid output size encountered during rANS decoding")}n.setPosition(0);};const i=r(6272),a=r(7151),s=n(r(9301));},1609:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.instantiateCodec=function e(t,r){const n=(i="ignore"===r?0:t.codecId,f[i]);var i;if(!n)throw new l.CramUnimplementedError(`no codec implemented for codec ID ${t.codecId}`);return new n(t.parameters,r,e)};const i=n(r(807)),a=n(r(7934)),s=n(r(8006)),A=n(r(8930)),o=n(r(632)),c=n(r(4056)),d=n(r(1492)),l=r(6272),f={1:A.default,3:c.default,4:a.default,5:s.default,6:i.default,7:d.default,9:o.default};},1668:(e,t,r)=>{var n={};(0, r(9805).assign)(n,r(3303),r(7083),r(9681)),e.exports=n;},1739:function(e,t,r){var n,i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i);}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),s=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),s=0;s<r.length;s++)"default"!==r[s]&&i(t,e,r[s]);return a(t,e),t}),A=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.decode=function(e,t,r){(e=new d.default(e)).ReadUint32();const n=e.ReadUint32(),i=e.ReadByte(),a=function(e,t,r,n){let i=-1;const a=new Array(256);for(;!e.EOF();){const t=e.ReadByte(),s=128&t,A=64&t,c=63&t;if(s&&(i++,a[i]=new Array(13)),c!=u&&s){const e=new Array(n-1).fill(w);a[i][u]=new d.default((0, o.concatUint8Array)([new Uint8Array(c),e]));}if(A){const t=e.ReadByte(),r=e.ReadByte();a[i][c]=new d.default(a[t][r].buf);}else {const t=e.ReadUint7(),n=e.ReadData(t);a[i][c]=r?f.decode(n):l.decode(n),a[i][c]=new d.default(a[i][c]);}}return a}(e,0,i,n),s=new Array(n),A=new Array(n);let c="";void 0===r&&(r="\n");for(let e=0;e<n;e++)c+=y(a,s,A,e)+r;return c};const o=r(6951),c=A(r(9505)),d=A(r(3088)),l=s(r(9313)),f=new c.default,u=0,g=1,h=2,C=3,I=4,_=5,m=7,B=8,p=9,w=10,E=12;function Q(e,t){let r=e+"";for(;r.length<t;)r="0"+r;return r}function y(e,t,r,n){let i=e[0][u].ReadByte();const a=n-e[0][i].ReadUint32();if(i==_)return t[n]=t[a],r[n]=r[a],t[n];let s=1;t[n]="",r[n]=new Array(256);do{switch(i=e[s][u].ReadByte(),i){case h:r[n][s]=e[s][h].ReadChar();break;case g:r[n][s]=e[s][g].ReadString();break;case m:r[n][s]=e[s][m].ReadUint32();break;case C:var A=e[s][C].ReadUint32(),o=e[s][I].ReadByte();r[n][s]=Q(A,o);break;case B:r[n][s]=(0|r[a][s])+e[s][B].ReadByte();break;case p:A=(0|r[a][s])+e[s][p].ReadByte(),o=r[a][s].length,r[n][s]=Q(A,o);break;case w:r[n][s]=r[a][s];break;default:r[n][s]="";}t[n]+=r[n][s++];}while(i!=E);return t[n]}},1996:(e,t,r)=>{var n=r(9805),i=!0,a=!0;try{String.fromCharCode.apply(null,[0]);}catch(e){i=!1;}try{String.fromCharCode.apply(null,new Uint8Array(1));}catch(e){a=!1;}for(var s=new n.Buf8(256),A=0;A<256;A++)s[A]=A>=252?6:A>=248?5:A>=240?4:A>=224?3:A>=192?2:1;function o(e,t){if(t<65534&&(e.subarray&&a||!e.subarray&&i))return String.fromCharCode.apply(null,n.shrinkBuf(e,t));for(var r="",s=0;s<t;s++)r+=String.fromCharCode(e[s]);return r}s[254]=s[254]=1,t.string2buf=function(e){var t,r,i,a,s,A=e.length,o=0;for(a=0;a<A;a++)55296==(64512&(r=e.charCodeAt(a)))&&a+1<A&&56320==(64512&(i=e.charCodeAt(a+1)))&&(r=65536+(r-55296<<10)+(i-56320),a++),o+=r<128?1:r<2048?2:r<65536?3:4;for(t=new n.Buf8(o),s=0,a=0;s<o;a++)55296==(64512&(r=e.charCodeAt(a)))&&a+1<A&&56320==(64512&(i=e.charCodeAt(a+1)))&&(r=65536+(r-55296<<10)+(i-56320),a++),r<128?t[s++]=r:r<2048?(t[s++]=192|r>>>6,t[s++]=128|63&r):r<65536?(t[s++]=224|r>>>12,t[s++]=128|r>>>6&63,t[s++]=128|63&r):(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63,t[s++]=128|r>>>6&63,t[s++]=128|63&r);return t},t.buf2binstring=function(e){return o(e,e.length)},t.binstring2buf=function(e){for(var t=new n.Buf8(e.length),r=0,i=t.length;r<i;r++)t[r]=e.charCodeAt(r);return t},t.buf2string=function(e,t){var r,n,i,a,A=t||e.length,c=new Array(2*A);for(n=0,r=0;r<A;)if((i=e[r++])<128)c[n++]=i;else if((a=s[i])>4)c[n++]=65533,r+=a-1;else {for(i&=2===a?31:3===a?15:7;a>1&&r<A;)i=i<<6|63&e[r++],a--;a>1?c[n++]=65533:i<65536?c[n++]=i:(i-=65536,c[n++]=55296|i>>10&1023,c[n++]=56320|1023&i);}return o(c,n)},t.utf8border=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;r>=0&&128==(192&e[r]);)r--;return r<0||0===r?t:r+s[e[r]]>t?r:t};},1998:(e,t,r)=>{var n=r(9805),i=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],a=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],s=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],A=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];e.exports=function(e,t,r,o,c,d,l,f){var u,g,h,C,I,_,m,B,p,w=f.bits,E=0,Q=0,y=0,b=0,D=0,S=0,k=0,v=0,R=0,F=0,M=null,N=0,x=new n.Buf16(16),L=new n.Buf16(16),O=null,T=0;for(E=0;E<=15;E++)x[E]=0;for(Q=0;Q<o;Q++)x[t[r+Q]]++;for(D=w,b=15;b>=1&&0===x[b];b--);if(D>b&&(D=b),0===b)return c[d++]=20971520,c[d++]=20971520,f.bits=1,0;for(y=1;y<b&&0===x[y];y++);for(D<y&&(D=y),v=1,E=1;E<=15;E++)if(v<<=1,(v-=x[E])<0)return -1;if(v>0&&(0===e||1!==b))return -1;for(L[1]=0,E=1;E<15;E++)L[E+1]=L[E]+x[E];for(Q=0;Q<o;Q++)0!==t[r+Q]&&(l[L[t[r+Q]]++]=Q);if(0===e?(M=O=l,_=19):1===e?(M=i,N-=257,O=a,T-=257,_=256):(M=s,O=A,_=-1),F=0,Q=0,E=y,I=d,S=D,k=0,h=-1,C=(R=1<<D)-1,1===e&&R>852||2===e&&R>592)return 1;for(;;){m=E-k,l[Q]<_?(B=0,p=l[Q]):l[Q]>_?(B=O[T+l[Q]],p=M[N+l[Q]]):(B=96,p=0),u=1<<E-k,y=g=1<<S;do{c[I+(F>>k)+(g-=u)]=m<<24|B<<16|p;}while(0!==g);for(u=1<<E-1;F&u;)u>>=1;if(0!==u?(F&=u-1,F+=u):F=0,Q++,0===--x[E]){if(E===b)break;E=t[r+l[Q]];}if(E>D&&(F&C)!==h){for(0===k&&(k=D),I+=y,v=1<<(S=E-k);S+k<b&&!((v-=x[S+k])<=0);)S++,v<<=1;if(R+=1<<S,1===e&&R>852||2===e&&R>592)return 1;c[h=F&C]=D<<24|S<<16|I-d;}}return 0!==F&&(c[I+F]=E-k<<24|64<<16),f.bits=D,0};},2151:e=>{var t={utf8:{stringToBytes:function(e){return t.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(t.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],r=0;r<e.length;r++)t.push(255&e.charCodeAt(r));return t},bytesToString:function(e){for(var t=[],r=0;r<e.length;r++)t.push(String.fromCharCode(e[r]));return t.join("")}}};e.exports=t;},2169:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.unzip=function(e){return (0, n.inflate)(e)};const n=r(1668);},2324:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=class{constructor(e=256){this.total_freq=e,this.max_sym=e-1,this.S=[],this.F=[];for(let e=0;e<=this.max_sym;e++)this.S[e]=e,this.F[e]=1;}ModelDecode(e,t){const r=t.RangeGetFrequency(this.total_freq);let n=0,i=0;for(;n+this.F[i]<=r;)n+=this.F[i++];t.RangeDecode(e,n,this.F[i],this.total_freq),this.F[i]+=16,this.total_freq+=16,this.total_freq>65519&&this.ModelRenormalise();const a=this.S[i];if(i>0&&this.F[i]>this.F[i-1]){let e=this.F[i];this.F[i]=this.F[i-1],this.F[i-1]=e,e=this.S[i],this.S[i]=this.S[i-1],this.S[i-1]=e;}return a}ModelRenormalise(){this.total_freq=0;for(let e=0;e<=this.max_sym;e++)this.F[e]-=Math.floor(this.F[e]/2),this.total_freq+=this.F[e];}ModelEncode(e,t,r){let n=0;for(var i=0;this.S[i]!=r;i++)n+=this.F[i];if(t.RangeEncode(e,n,this.F[i],this.total_freq),this.F[i]+=16,this.total_freq+=16,this.total_freq>65519&&this.ModelRenormalise(),r=this.S[i],i>0&&this.F[i]>this.F[i-1]){let e=this.F[i];this.F[i]=this.F[i-1],this.F[i-1]=e,e=this.S[i],this.S[i]=this.S[i-1],this.S[i-1]=e;}}};},2549:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.TWO_PWR_56_DBL=t.TWO_PWR_24_DBL=t.TWO_PWR_64_DBL=t.TWO_PWR_32_DBL=t.TWO_PWR_16_DBL=void 0,t.itf8Size=function(e){return -128&e?-16384&e?-2097152&e?-268435456&e?5:4:3:2:1},t.parseItf8=function(e,t){let r=t;const n=e[r];let i;return n<128?(i=n,r+=1):n<192?(i=(63&n)<<8|e[r+1],r+=2):n<224?(i=(31&n)<<16|e[r+1]<<8|e[r+2],r+=3):n<240?(i=(15&n)<<24|e[r+1]<<16|e[r+2]<<8|e[r+3],r+=4):(i=(15&n)<<28|e[r+1]<<20|e[r+2]<<12|e[r+3]<<4|15&e[r+4],r+=5),[i,r-t]},t.parseLtf8=function(e,r){let n=r;const i=e[n];let a;return i<128?(a=i,n+=1):i<192?(a=16383&(i<<8|e[n+1]),n+=2):i<224?(a=(63&i)<<16|e[n+1]<<8|e[n+2],n+=3):i<240?(a=(31&i)<<24|e[n+1]<<16|e[n+2]<<8|e[n+3],n+=4):i<248?(a=(15&e[n])*t.TWO_PWR_32_DBL+(e[n+1]<<24|e[n+2]<<16|e[n+3]<<8|e[n+4]),n+=5):i<252?(a=((7&e[n])<<8|e[n+1])*t.TWO_PWR_32_DBL+(e[n+2]<<24|e[n+3]<<16|e[n+4]<<8|e[n+5]),n+=6):i<254?(a=((3&e[n])<<16|e[n+1]<<8|e[n+2])*t.TWO_PWR_32_DBL+(e[n+3]<<24|e[n+4]<<16|e[n+5]<<8|e[n+6]),n+=7):i<255?(a=(e[n+1]<<24|e[n+2]<<16|e[n+3]<<8|e[n+4])*t.TWO_PWR_32_DBL+(e[n+5]<<24|e[n+6]<<16|e[n+7]<<8|e[n+8]),n+=8):(a=e[n+1]*t.TWO_PWR_56_DBL+(e[n+2]<<24|e[n+3]<<16|e[n+4]<<8|e[n+5])*t.TWO_PWR_32_DBL+(e[n+6]<<24|e[n+7]<<16|e[n+8]<<8|e[n+9]),n+=9),[a,n-r]},t.parseItem=function(e,t,r=0,n=0){const{offset:i,value:a}=t(e,r);return {...a,_endPosition:i+n,_size:i-r}},t.tinyMemoize=function(e,t){const r=e.prototype[t],n=`_memo_${t}`;e.prototype[t]=function(){if(!(n in this)){const e=r.call(this);this[n]=e,Promise.resolve(e).catch((()=>{delete this[n];}));}return this[n]};},t.sequenceMD5=function(e){return (0, i.default)(e.toUpperCase().replaceAll(/[^\u0021-\u007e]/g,""))};const i=n(r(3503));t.TWO_PWR_16_DBL=65536,t.TWO_PWR_32_DBL=t.TWO_PWR_16_DBL*t.TWO_PWR_16_DBL,t.TWO_PWR_64_DBL=t.TWO_PWR_32_DBL*t.TWO_PWR_32_DBL,t.TWO_PWR_24_DBL=1<<24,t.TWO_PWR_56_DBL=t.TWO_PWR_24_DBL*t.TWO_PWR_32_DBL;},2616:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});const n=r(9846);t.default=class{constructor(e,t={}){this.filename=e;}async read(e,t=0){const r=new Uint8Array(e),i=await(0, n.open)(this.filename,"r"),a=await i.read(r,0,e,t);return await i.close(),a.buffer.subarray(0,a.bytesRead)}async readFile(e){const t=await(0, n.readFile)(this.filename,e);return "string"==typeof t?t:new Uint8Array(t)}async stat(){return (0, n.stat)(this.filename)}async close(){}};},2660:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.decode=function(e,t){return function(e,t){const r=e.ReadUint7(),n=function(e){const t={max_sym:0};if(5!=e.ReadByte())return void console.error("Invalid FQZComp version number");const r=e.ReadByte(),n=r&h?e.ReadByte():1;let i=r.nparam>1?r.nparam-1:0;const a=new Array(256);if(r&C)i=e.ReadByte(),A(e,a,256);else {for(var s=0;s<n;s++)a[s]=s;for(;s<256;s++)a[s]=n-1;}t.do_rev=r&I,t.stab=a,t.max_sel=i,t.params=new Array(t.nparam);for(let r=0;r<n;r++)t.params[r]=m(e),t.max_sym<t.params[r].max_sym&&(t.max_sym=t.params[r].max_sym);return t}(e);if(!n)return;var s=n.params;const o=new Array(t.length),c=function(e){const t={};t.qual=new Array(65536);for(var r=0;r<65536;r++)t.qual[r]=new a.default(e.max_sym+1);for(t.len=new Array(4),r=0;r<4;r++)t.len[r]=new a.default(256);return t.rev=new a.default(2),t.dup=new a.default(2),e.max_sel>0&&(t.sel=new a.default(e.max_sel+1)),t}(n),d=new i.default(e);d.RangeStartDecode(e);const l=new Uint8Array(r),f={qctx:0,prevq:0,delta:0,p:0,s:0,x:0,len:0,is_dup:0,rec:0};let u=0;for(;u<r;){if(0==f.p){if(B(e,d,n,c,f,o),f.is_dup>0&&c.dup.ModelDecode(e,d)){for(let e=0;e<len;e++)l[u+e]=l[u+e-f.len];u+=f.len,f.p=0;continue}t.push(f.len);var g=(s=n.params[f.x]).context;}const r=c.qual[g].ModelDecode(e,d);l[u++]=s.qmap[r],g=_(s,f,r);}return n.do_rev&&function(e,t,r,n){let i=0,a=0;for(;a<t;){if(r[i]){let t=0,r=n[i]-1;for(;t<r;){const n=e[a+t];e[a+t]=e[a+r],e[a+r]=n,t++,r--;}}a+=n[i++];}}(l,r,o,t),l}(new s.default(e),t)};const i=n(r(4652)),a=n(r(2324)),s=n(r(3088));function A(e,t,r){let n=0,i=0,a=-1;const s=new Array(1024);for(;i<r;){const t=e.ReadByte();if(s[n++]=t,i+=t,t==a){let r=e.ReadByte();for(i+=t*r;r--;)s[n++]=t;}a=t;}let A=0;for(n=0,i=0;i<r;){let e=0;do{var o=s[n++];e+=o;}while(255==o);for(;e--;)t[i++]=A;A++;}}const o=2,c=4,d=8,l=16,f=32,u=64,g=128,h=1,C=2,I=4;function _(e,t,r){let n=e.context;return t.qctx=(t.qctx<<e.qshift)+e.qtab[r],n+=(t.qctx&(1<<e.qbits)-1)<<e.qloc,e.do_pos&&(n+=e.ptab[Math.min(t.p,1023)]<<e.ploc),e.do_delta&&(n+=e.dtab[Math.min(t.delta,255)]<<e.dloc,t.delta+=t.prevq!=r?1:0,t.prevq=r),e.do_sel&&(n+=t.s<<e.sloc),t.p--,65535&n}function m(e){const t={};t.context=e.ReadUint16(),t.pflags=e.ReadByte(),t.do_dedup=t.pflags&o,t.fixed_len=t.pflags&c,t.do_sel=t.pflags&d,t.do_qmap=t.pflags&l,t.do_pos=t.pflags&f,t.do_delta=t.pflags&u,t.do_qtab=t.pflags&g,t.max_sym=e.ReadByte();let r=e.ReadByte();if(t.qbits=r>>4,t.qshift=15&r,r=e.ReadByte(),t.qloc=r>>4,t.sloc=15&r,r=e.ReadByte(),t.ploc=r>>4,t.dloc=15&r,t.qmap=new Array(256),t.pflags&l)for(var n=0;n<t.max_sym;n++)t.qmap[n]=e.ReadByte();else for(n=0;n<256;n++)t.qmap[n]=n;if(t.qtab=new Array(1024),t.qbits>0&&t.pflags&g)A(e,t.qtab,256);else for(n=0;n<256;n++)t.qtab[n]=n;return t.ptab=new Array(1024),t.pflags&f&&A(e,t.ptab,1024),t.dtab=new Array(256),t.pflags&u&&A(e,t.dtab,256),t}function B(e,t,r,n,i,a){i.s=r.max_sel>0?n.sel.ModelDecode(e,t):0,i.x=r.stab[i.s];const s=r.params[i.x];if(s.fixed_len>=0){var A=n.len[0].ModelDecode(e,t);A|=n.len[1].ModelDecode(e,t)<<8,A|=n.len[2].ModelDecode(e,t)<<16,A|=n.len[3].ModelDecode(e,t)<<24,s.fixed_len>0&&(s.fixed_len=-A);}else A=-s.fixed_len;i.len=A,r.do_rev&&(a[i.rec]=n.rev.ModelDecode(e,t)),i.is_dup=0,s.pflags&o&&n.dup.ModelDecode(e,t)&&(i.is_dup=1),i.p=A,i.delta=0,i.qctx=0,i.prevq=0,i.rec++;}},2670:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r=0){if(0===e.length)return t.fill(0),t;const n=new d(e,r),l=n.get();if(0!==l&&1!==l)throw new i.CramMalformedError(`Invalid rANS order ${l}`);if(n.getInt()!==n.remaining()-c)throw new i.CramMalformedError("Incorrect input length.");const f=n.getInt(),u=new d(t||new Uint8Array(f));if(u.length<f)throw new i.CramMalformedError(`Output buffer too small to fit ${f} bytes.`);switch(l){case 0:return function(e,t){const r=new A.default.AriDecoder,n=new Array(256);for(let e=0;e<n.length;e+=1)n[e]=new A.default.DecodingSymbol;return (0, o.readStatsO0)(e,r,n),(0, a.default)(e,r,n,t),t}(n,u);case 1:return function(e,t){const r=new Array(256);for(let e=0;e<r.length;e+=1)r[e]=new A.default.AriDecoder;const n=new Array(256);for(let e=0;e<n.length;e+=1){n[e]=new Array(256);for(let t=0;t<n[e].length;t+=1)n[e][t]=new A.default.DecodingSymbol;}return (0, o.readStatsO1)(e,r,n),(0, s.default)(e,t,r,n),t}(n,u);default:throw new i.CramMalformedError(`Invalid rANS order: ${l}`)}};const i=r(6272),a=n(r(1558)),s=n(r(2867)),A=n(r(9301)),o=r(6268),c=4;class d{constructor(e,t=0){this._buffer=e,this._dataView=new DataView(e.buffer),this._position=t,this.length=e.length;}get(){const e=this._buffer[this._position];return this._position+=1,e}getByte(){return this.get()}getByteAt(e){return this._buffer[e]}position(){return this._position}put(e){return this._buffer[this._position]=e,this._position+=1,e}putAt(e,t){return this._buffer[e]=t,t}setPosition(e){return this._position=e,e}getInt(){const e=this._dataView.getInt32(this._position,!0);return this._position+=4,e}remaining(){return this._buffer.length-this._position}}},2845:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=r(6272),a=n(r(500)),s=r(2549),A=n(r(8700)),o=r(7580);class c{constructor(e,t){this.file=e,this.filePosition=t;}getHeader(){return this._readContainerHeader(this.filePosition)}async getCompressionHeaderBlock(){if(!(await this.getHeader()).numRecords)return null;const{majorVersion:e}=await this.file.getDefinition(),t=(0, o.getSectionParsers)(e),r=await this.getFirstBlock();if("COMPRESSION_HEADER"!==r.contentType)throw new i.CramMalformedError(`invalid content type ${r.contentType} in compression header block`);const n=(0, s.parseItem)(r.content,t.cramCompressionHeader.parser,0,r.contentPosition);return {...r,parsedContent:n}}async getFirstBlock(){const e=await this.getHeader();return this.file.readBlock(e._endPosition)}async getCompressionScheme(){const e=await this.getCompressionHeaderBlock();if(e)return new A.default(e.parsedContent)}getSlice(e,t){return new a.default(this,e,t)}async _readContainerHeader(e){const{majorVersion:t}=await this.file.getDefinition(),r=(0, o.getSectionParsers)(t),{cramContainerHeader1:n,cramContainerHeader2:i}=r,a=await this.file.read(n.maxLength,e),A=(0, s.parseItem)(a,n.parser),c=(0, s.itf8Size)(A.numLandmarks),d=await this.file.read(i.maxLength(A.numLandmarks),e+A._size-c),l=(0, s.parseItem)(d,i.parser);return this.file.validateChecksums&&void 0!==l.crc32&&await this.file.checkCrc32(e,A._size+l._size-c-4,l.crc32,`container header beginning at position ${e}`),{...A,...l,_size:A._size+l._size-c,_endPosition:A._size+l._size-c+e}}}t.default=c,"getHeader getCompressionHeaderBlock getCompressionScheme".split(" ").forEach((e=>{(0, s.tinyMemoize)(c,e);}));},2867:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r,n){const s=t.remaining();let A=e.getInt(),o=e.getInt(),c=e.getInt(),d=e.getInt();const l=s>>2;let f=0,u=l,g=2*l,h=3*l,C=0,I=0,_=0,m=0;for(;f<l;f+=1,u+=1,g+=1,h+=1){const s=255&r[C].R[a.default.get(A,i.TF_SHIFT)],l=255&r[I].R[a.default.get(o,i.TF_SHIFT)],B=255&r[_].R[a.default.get(c,i.TF_SHIFT)],p=255&r[m].R[a.default.get(d,i.TF_SHIFT)];t.putAt(f,s),t.putAt(u,l),t.putAt(g,B),t.putAt(h,p),A=a.default.advanceSymbolStep(A,n[C][s],i.TF_SHIFT),o=a.default.advanceSymbolStep(o,n[I][l],i.TF_SHIFT),c=a.default.advanceSymbolStep(c,n[_][B],i.TF_SHIFT),d=a.default.advanceSymbolStep(d,n[m][p],i.TF_SHIFT),A=a.default.renormalize(A,e),o=a.default.renormalize(o,e),c=a.default.renormalize(c,e),d=a.default.renormalize(d,e),C=s,I=l,_=B,m=p;}for(;h<s;h+=1){const s=255&r[m].R[a.default.get(d,i.TF_SHIFT)];t.putAt(h,s),d=a.default.advanceSymbol(d,e,n[m][s],i.TF_SHIFT),m=s;}};const i=r(7151),a=n(r(9301));},3088:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=class{constructor(e,t=0,r=0){0!==r?(this.buf=new Uint8Array(r),this.length=r):(this.buf=e,this.length=e.length),this.dataView=new DataView(this.buf.buffer),this.pos=t;}EOF(){return this.pos>=this.length}ReadData(e){const t=this.buf.slice(this.pos,this.pos+e);return this.pos+=e,t}ReadByte(){const e=this.buf[this.pos];return this.pos++,e}ReadChar(){const e=this.buf[this.pos];return this.pos++,String.fromCharCode(e)}ReadUint16(){let e=this.ReadByte();return e|=this.ReadByte()<<8,e}ReadUint32(){const e=this.dataView.getInt32(this.pos,!0);return this.pos+=4,e}ReadString(){let e,t="";do{e=this.buf[this.pos++],e&&(t+=String.fromCharCode(e));}while(e);return t}ReadUint7(){let e,t=0;do{e=this.ReadByte(),t=t<<7|127&e;}while(128&e);return t}ReadITF8(){let e=this.buf[this.pos];return this.pos++,e>=240?(e=(15&e)<<28,e+=(this.buf[this.pos+0]<<20)+(this.buf[this.pos+1]<<12)+(this.buf[this.pos+2]<<4)+(this.buf[this.pos+3]>>4),this.pos+=4):e>=224?(e=(15&e)<<24,e+=(this.buf[this.pos+0]<<16)+(this.buf[this.pos+1]<<8)+(0|this.buf[this.pos+2]),this.pos+=3):e>=192?(e=(31&e)<<16,e+=(this.buf[this.pos+0]<<8)+(0|this.buf[this.pos+1]),this.pos+=2):e>=128&&(e=(63&e)<<8,e+=this.buf[this.pos],this.pos++),e}};},3269:e=>{e.exports=function(e,t,r,n){for(var i=65535&e,a=e>>>16&65535,s=0;0!==r;){r-=s=r>2e3?2e3:r;do{a=a+(i=i+t[n++]|0)|0;}while(--s);i%=65521,a%=65521;}return i|a<<16};},3303:(e,t,r)=>{var n=r(8411),i=r(9805),a=r(1996),s=r(4674),A=r(4442),o=Object.prototype.toString;function c(e){if(!(this instanceof c))return new c(e);this.options=i.assign({level:-1,method:8,chunkSize:16384,windowBits:15,memLevel:8,strategy:0,to:""},e||{});var t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new A,this.strm.avail_out=0;var r=n.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(0!==r)throw new Error(s[r]);if(t.header&&n.deflateSetHeader(this.strm,t.header),t.dictionary){var d;if(d="string"==typeof t.dictionary?a.string2buf(t.dictionary):"[object ArrayBuffer]"===o.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,0!==(r=n.deflateSetDictionary(this.strm,d)))throw new Error(s[r]);this._dict_set=!0;}}function d(e,t){var r=new c(t);if(r.push(e,!0),r.err)throw r.msg||s[r.err];return r.result}c.prototype.push=function(e,t){var r,s,A=this.strm,c=this.options.chunkSize;if(this.ended)return !1;s=t===~~t?t:!0===t?4:0,"string"==typeof e?A.input=a.string2buf(e):"[object ArrayBuffer]"===o.call(e)?A.input=new Uint8Array(e):A.input=e,A.next_in=0,A.avail_in=A.input.length;do{if(0===A.avail_out&&(A.output=new i.Buf8(c),A.next_out=0,A.avail_out=c),1!==(r=n.deflate(A,s))&&0!==r)return this.onEnd(r),this.ended=!0,!1;0!==A.avail_out&&(0!==A.avail_in||4!==s&&2!==s)||("string"===this.options.to?this.onData(a.buf2binstring(i.shrinkBuf(A.output,A.next_out))):this.onData(i.shrinkBuf(A.output,A.next_out)));}while((A.avail_in>0||0===A.avail_out)&&1!==r);return 4===s?(r=n.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,0===r):2!==s||(this.onEnd(0),A.avail_out=0,!0)},c.prototype.onData=function(e){this.chunks.push(e);},c.prototype.onEnd=function(e){0===e&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=i.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg;},t.Deflate=c,t.deflate=d,t.deflateRaw=function(e,t){return (t=t||{}).raw=!0,d(e,t)},t.gzip=function(e,t){return (t=t||{}).gzip=!0,d(e,t)};},3503:(e,t,r)=>{var n,i,a,s,A;n=r(3939),i=r(2151).utf8,a=r(652),s=r(2151).bin,(A=function(e,t){e.constructor==String?e=t&&"binary"===t.encoding?s.stringToBytes(e):i.stringToBytes(e):a(e)?e=Array.prototype.slice.call(e,0):Array.isArray(e)||e.constructor===Uint8Array||(e=e.toString());for(var r=n.bytesToWords(e),o=8*e.length,c=1732584193,d=-271733879,l=-1732584194,f=271733878,u=0;u<r.length;u++)r[u]=16711935&(r[u]<<8|r[u]>>>24)|4278255360&(r[u]<<24|r[u]>>>8);r[o>>>5]|=128<<o%32,r[14+(o+64>>>9<<4)]=o;var g=A._ff,h=A._gg,C=A._hh,I=A._ii;for(u=0;u<r.length;u+=16){var _=c,m=d,B=l,p=f;c=g(c,d,l,f,r[u+0],7,-680876936),f=g(f,c,d,l,r[u+1],12,-389564586),l=g(l,f,c,d,r[u+2],17,606105819),d=g(d,l,f,c,r[u+3],22,-1044525330),c=g(c,d,l,f,r[u+4],7,-176418897),f=g(f,c,d,l,r[u+5],12,1200080426),l=g(l,f,c,d,r[u+6],17,-1473231341),d=g(d,l,f,c,r[u+7],22,-45705983),c=g(c,d,l,f,r[u+8],7,1770035416),f=g(f,c,d,l,r[u+9],12,-1958414417),l=g(l,f,c,d,r[u+10],17,-42063),d=g(d,l,f,c,r[u+11],22,-1990404162),c=g(c,d,l,f,r[u+12],7,1804603682),f=g(f,c,d,l,r[u+13],12,-40341101),l=g(l,f,c,d,r[u+14],17,-1502002290),c=h(c,d=g(d,l,f,c,r[u+15],22,1236535329),l,f,r[u+1],5,-165796510),f=h(f,c,d,l,r[u+6],9,-1069501632),l=h(l,f,c,d,r[u+11],14,643717713),d=h(d,l,f,c,r[u+0],20,-373897302),c=h(c,d,l,f,r[u+5],5,-701558691),f=h(f,c,d,l,r[u+10],9,38016083),l=h(l,f,c,d,r[u+15],14,-660478335),d=h(d,l,f,c,r[u+4],20,-405537848),c=h(c,d,l,f,r[u+9],5,568446438),f=h(f,c,d,l,r[u+14],9,-1019803690),l=h(l,f,c,d,r[u+3],14,-187363961),d=h(d,l,f,c,r[u+8],20,1163531501),c=h(c,d,l,f,r[u+13],5,-1444681467),f=h(f,c,d,l,r[u+2],9,-51403784),l=h(l,f,c,d,r[u+7],14,1735328473),c=C(c,d=h(d,l,f,c,r[u+12],20,-1926607734),l,f,r[u+5],4,-378558),f=C(f,c,d,l,r[u+8],11,-2022574463),l=C(l,f,c,d,r[u+11],16,1839030562),d=C(d,l,f,c,r[u+14],23,-35309556),c=C(c,d,l,f,r[u+1],4,-1530992060),f=C(f,c,d,l,r[u+4],11,1272893353),l=C(l,f,c,d,r[u+7],16,-155497632),d=C(d,l,f,c,r[u+10],23,-1094730640),c=C(c,d,l,f,r[u+13],4,681279174),f=C(f,c,d,l,r[u+0],11,-358537222),l=C(l,f,c,d,r[u+3],16,-722521979),d=C(d,l,f,c,r[u+6],23,76029189),c=C(c,d,l,f,r[u+9],4,-640364487),f=C(f,c,d,l,r[u+12],11,-421815835),l=C(l,f,c,d,r[u+15],16,530742520),c=I(c,d=C(d,l,f,c,r[u+2],23,-995338651),l,f,r[u+0],6,-198630844),f=I(f,c,d,l,r[u+7],10,1126891415),l=I(l,f,c,d,r[u+14],15,-1416354905),d=I(d,l,f,c,r[u+5],21,-57434055),c=I(c,d,l,f,r[u+12],6,1700485571),f=I(f,c,d,l,r[u+3],10,-1894986606),l=I(l,f,c,d,r[u+10],15,-1051523),d=I(d,l,f,c,r[u+1],21,-2054922799),c=I(c,d,l,f,r[u+8],6,1873313359),f=I(f,c,d,l,r[u+15],10,-30611744),l=I(l,f,c,d,r[u+6],15,-1560198380),d=I(d,l,f,c,r[u+13],21,1309151649),c=I(c,d,l,f,r[u+4],6,-145523070),f=I(f,c,d,l,r[u+11],10,-1120210379),l=I(l,f,c,d,r[u+2],15,718787259),d=I(d,l,f,c,r[u+9],21,-343485551),c=c+_>>>0,d=d+m>>>0,l=l+B>>>0,f=f+p>>>0;}return n.endian([c,d,l,f])})._ff=function(e,t,r,n,i,a,s){var A=e+(t&r|~t&n)+(i>>>0)+s;return (A<<a|A>>>32-a)+t},A._gg=function(e,t,r,n,i,a,s){var A=e+(t&n|r&~n)+(i>>>0)+s;return (A<<a|A>>>32-a)+t},A._hh=function(e,t,r,n,i,a,s){var A=e+(t^r^n)+(i>>>0)+s;return (A<<a|A>>>32-a)+t},A._ii=function(e,t,r,n,i,a,s){var A=e+(r^(t|~n))+(i>>>0)+s;return (A<<a|A>>>32-a)+t},A._blocksize=16,A._digestsize=16,e.exports=function(e,t){if(null==e)throw new Error("Illegal argument "+e);var r=n.wordsToBytes(A(e,t));return t&&t.asBytes?r:t&&t.asString?s.bytesToString(r):n.bytesToHex(r)};},3665:(e,t,r)=>{var n=r(9805);function i(e){for(var t=e.length;--t>=0;)e[t]=0;}var a=[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],s=[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],A=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],o=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],c=new Array(576);i(c);var d=new Array(60);i(d);var l=new Array(512);i(l);var f=new Array(256);i(f);var u=new Array(29);i(u);var g,h,C,I=new Array(30);function _(e,t,r,n,i){this.static_tree=e,this.extra_bits=t,this.extra_base=r,this.elems=n,this.max_length=i,this.has_stree=e&&e.length;}function m(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t;}function B(e){return e<256?l[e]:l[256+(e>>>7)]}function p(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255;}function w(e,t,r){e.bi_valid>16-r?(e.bi_buf|=t<<e.bi_valid&65535,p(e,e.bi_buf),e.bi_buf=t>>16-e.bi_valid,e.bi_valid+=r-16):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=r);}function E(e,t,r){w(e,r[2*t],r[2*t+1]);}function Q(e,t){var r=0;do{r|=1&e,e>>>=1,r<<=1;}while(--t>0);return r>>>1}function y(e,t,r){var n,i,a=new Array(16),s=0;for(n=1;n<=15;n++)a[n]=s=s+r[n-1]<<1;for(i=0;i<=t;i++){var A=e[2*i+1];0!==A&&(e[2*i]=Q(a[A]++,A));}}function b(e){var t;for(t=0;t<286;t++)e.dyn_ltree[2*t]=0;for(t=0;t<30;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0;}function D(e){e.bi_valid>8?p(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0;}function S(e,t,r,n){var i=2*t,a=2*r;return e[i]<e[a]||e[i]===e[a]&&n[t]<=n[r]}function k(e,t,r){for(var n=e.heap[r],i=r<<1;i<=e.heap_len&&(i<e.heap_len&&S(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!S(t,n,e.heap[i],e.depth));)e.heap[r]=e.heap[i],r=i,i<<=1;e.heap[r]=n;}function v(e,t,r){var n,i,A,o,c=0;if(0!==e.last_lit)do{n=e.pending_buf[e.d_buf+2*c]<<8|e.pending_buf[e.d_buf+2*c+1],i=e.pending_buf[e.l_buf+c],c++,0===n?E(e,i,t):(E(e,(A=f[i])+256+1,t),0!==(o=a[A])&&w(e,i-=u[A],o),E(e,A=B(--n),r),0!==(o=s[A])&&w(e,n-=I[A],o));}while(c<e.last_lit);E(e,256,t);}function R(e,t){var r,n,i,a=t.dyn_tree,s=t.stat_desc.static_tree,A=t.stat_desc.has_stree,o=t.stat_desc.elems,c=-1;for(e.heap_len=0,e.heap_max=573,r=0;r<o;r++)0!==a[2*r]?(e.heap[++e.heap_len]=c=r,e.depth[r]=0):a[2*r+1]=0;for(;e.heap_len<2;)a[2*(i=e.heap[++e.heap_len]=c<2?++c:0)]=1,e.depth[i]=0,e.opt_len--,A&&(e.static_len-=s[2*i+1]);for(t.max_code=c,r=e.heap_len>>1;r>=1;r--)k(e,a,r);i=o;do{r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],k(e,a,1),n=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=n,a[2*i]=a[2*r]+a[2*n],e.depth[i]=(e.depth[r]>=e.depth[n]?e.depth[r]:e.depth[n])+1,a[2*r+1]=a[2*n+1]=i,e.heap[1]=i++,k(e,a,1);}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],function(e,t){var r,n,i,a,s,A,o=t.dyn_tree,c=t.max_code,d=t.stat_desc.static_tree,l=t.stat_desc.has_stree,f=t.stat_desc.extra_bits,u=t.stat_desc.extra_base,g=t.stat_desc.max_length,h=0;for(a=0;a<=15;a++)e.bl_count[a]=0;for(o[2*e.heap[e.heap_max]+1]=0,r=e.heap_max+1;r<573;r++)(a=o[2*o[2*(n=e.heap[r])+1]+1]+1)>g&&(a=g,h++),o[2*n+1]=a,n>c||(e.bl_count[a]++,s=0,n>=u&&(s=f[n-u]),A=o[2*n],e.opt_len+=A*(a+s),l&&(e.static_len+=A*(d[2*n+1]+s)));if(0!==h){do{for(a=g-1;0===e.bl_count[a];)a--;e.bl_count[a]--,e.bl_count[a+1]+=2,e.bl_count[g]--,h-=2;}while(h>0);for(a=g;0!==a;a--)for(n=e.bl_count[a];0!==n;)(i=e.heap[--r])>c||(o[2*i+1]!==a&&(e.opt_len+=(a-o[2*i+1])*o[2*i],o[2*i+1]=a),n--);}}(e,t),y(a,c,e.bl_count);}function F(e,t,r){var n,i,a=-1,s=t[1],A=0,o=7,c=4;for(0===s&&(o=138,c=3),t[2*(r+1)+1]=65535,n=0;n<=r;n++)i=s,s=t[2*(n+1)+1],++A<o&&i===s||(A<c?e.bl_tree[2*i]+=A:0!==i?(i!==a&&e.bl_tree[2*i]++,e.bl_tree[32]++):A<=10?e.bl_tree[34]++:e.bl_tree[36]++,A=0,a=i,0===s?(o=138,c=3):i===s?(o=6,c=3):(o=7,c=4));}function M(e,t,r){var n,i,a=-1,s=t[1],A=0,o=7,c=4;for(0===s&&(o=138,c=3),n=0;n<=r;n++)if(i=s,s=t[2*(n+1)+1],!(++A<o&&i===s)){if(A<c)do{E(e,i,e.bl_tree);}while(0!==--A);else 0!==i?(i!==a&&(E(e,i,e.bl_tree),A--),E(e,16,e.bl_tree),w(e,A-3,2)):A<=10?(E(e,17,e.bl_tree),w(e,A-3,3)):(E(e,18,e.bl_tree),w(e,A-11,7));A=0,a=i,0===s?(o=138,c=3):i===s?(o=6,c=3):(o=7,c=4);}}i(I);var N=!1;function x(e,t,r,i){w(e,0+(i?1:0),3),function(e,t,r){D(e),p(e,r),p(e,~r),n.arraySet(e.pending_buf,e.window,t,r,e.pending),e.pending+=r;}(e,t,r);}t._tr_init=function(e){N||(function(){var e,t,r,n,i,o=new Array(16);for(r=0,n=0;n<28;n++)for(u[n]=r,e=0;e<1<<a[n];e++)f[r++]=n;for(f[r-1]=n,i=0,n=0;n<16;n++)for(I[n]=i,e=0;e<1<<s[n];e++)l[i++]=n;for(i>>=7;n<30;n++)for(I[n]=i<<7,e=0;e<1<<s[n]-7;e++)l[256+i++]=n;for(t=0;t<=15;t++)o[t]=0;for(e=0;e<=143;)c[2*e+1]=8,e++,o[8]++;for(;e<=255;)c[2*e+1]=9,e++,o[9]++;for(;e<=279;)c[2*e+1]=7,e++,o[7]++;for(;e<=287;)c[2*e+1]=8,e++,o[8]++;for(y(c,287,o),e=0;e<30;e++)d[2*e+1]=5,d[2*e]=Q(e,5);g=new _(c,a,257,286,15),h=new _(d,s,0,30,15),C=new _(new Array(0),A,0,19,7);}(),N=!0),e.l_desc=new m(e.dyn_ltree,g),e.d_desc=new m(e.dyn_dtree,h),e.bl_desc=new m(e.bl_tree,C),e.bi_buf=0,e.bi_valid=0,b(e);},t._tr_stored_block=x,t._tr_flush_block=function(e,t,r,n){var i,a,s=0;e.level>0?(2===e.strm.data_type&&(e.strm.data_type=function(e){var t,r=4093624447;for(t=0;t<=31;t++,r>>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<256;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0}(e)),R(e,e.l_desc),R(e,e.d_desc),s=function(e){var t;for(F(e,e.dyn_ltree,e.l_desc.max_code),F(e,e.dyn_dtree,e.d_desc.max_code),R(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*o[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),i=e.opt_len+3+7>>>3,(a=e.static_len+3+7>>>3)<=i&&(i=a)):i=a=r+5,r+4<=i&&-1!==t?x(e,t,r,n):4===e.strategy||a===i?(w(e,2+(n?1:0),3),v(e,c,d)):(w(e,4+(n?1:0),3),function(e,t,r,n){var i;for(w(e,t-257,5),w(e,r-1,5),w(e,n-4,4),i=0;i<n;i++)w(e,e.bl_tree[2*o[i]+1],3);M(e,e.dyn_ltree,t-1),M(e,e.dyn_dtree,r-1);}(e,e.l_desc.max_code+1,e.d_desc.max_code+1,s+1),v(e,e.dyn_ltree,e.dyn_dtree)),b(e),n&&D(e);},t._tr_tally=function(e,t,r){return e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(f[r]+256+1)]++,e.dyn_dtree[2*B(t)]++),e.last_lit===e.lit_bufsize-1},t._tr_align=function(e){w(e,2,3),E(e,256,c),function(e){16===e.bi_valid?(p(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8);}(e);};},3939:e=>{var t,r;t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r={rotl:function(e,t){return e<<t|e>>>32-t},rotr:function(e,t){return e<<32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&r.rotl(e,8)|4278255360&r.rotl(e,24);for(var t=0;t<e.length;t++)e[t]=r.endian(e[t]);return e},randomBytes:function(e){for(var t=[];e>0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],r=0,n=0;r<e.length;r++,n+=8)t[n>>>5]|=e[r]<<24-n%32;return t},wordsToBytes:function(e){for(var t=[],r=0;r<32*e.length;r+=8)t.push(e[r>>>5]>>>24-r%32&255);return t},bytesToHex:function(e){for(var t=[],r=0;r<e.length;r++)t.push((e[r]>>>4).toString(16)),t.push((15&e[r]).toString(16));return t.join("")},hexToBytes:function(e){for(var t=[],r=0;r<e.length;r+=2)t.push(parseInt(e.substr(r,2),16));return t},bytesToBase64:function(e){for(var r=[],n=0;n<e.length;n+=3)for(var i=e[n]<<16|e[n+1]<<8|e[n+2],a=0;a<4;a++)8*n+6*a<=8*e.length?r.push(t.charAt(i>>>6*(3-a)&63)):r.push("=");return r.join("")},base64ToBytes:function(e){e=e.replace(/[^A-Z0-9+\/]/gi,"");for(var r=[],n=0,i=0;n<e.length;i=++n%4)0!=i&&r.push((t.indexOf(e.charAt(n-1))&Math.pow(2,-2*i+8)-1)<<2*i|t.indexOf(e.charAt(n))>>>6-2*i);return r}},e.exports=r;},4056:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=n(r(4141)),a=r(6761),s=r(6272);class A extends i.default{constructor(e,t){if(super(e,t),this.codes={},this.codeBook={},this.sortedCodes=[],this.sortedValuesByBitCode=[],this.sortedBitCodes=[],this.sortedBitLengthsByBitCode=[],this.bitCodeToValue=[],!["byte","int"].includes(this.dataType))throw new TypeError(`${this.dataType} decoding not yet implemented by HUFFMAN_INT codec`);this.buildCodeBook(),this.buildCodes(),this.buildCaches(),0===this.sortedCodes[0].bitLength&&(this._decode=this._decodeZeroLengthCode);}buildCodeBook(){let e=new Array(this.parameters.numCodes);for(let t=0;t<this.parameters.numCodes;t++)e[t]={symbol:this.parameters.symbols[t],bitLength:this.parameters.bitLengths[t]};e=e.sort(((e,t)=>e.bitLength-t.bitLength||e.symbol-t.symbol)),this.codeBook={},e.forEach((e=>{this.codeBook[e.bitLength]||(this.codeBook[e.bitLength]=[]),this.codeBook[e.bitLength].push(e.symbol);}));}buildCodes(){this.codes={};let e=0,t=-1;Object.entries(this.codeBook).forEach((([r,n])=>{const i=Number.parseInt(r,10);n.forEach((r=>{const n={bitLength:i,value:r,bitCode:0};t+=1;const a=i-e;if(t<<=a,n.bitCode=t,e+=a,function(e){let t=e-(e>>1)&1431655765;return t=(858993459&t)+(t>>2&858993459),16843009*(t+(t>>4)&252645135)>>24}(t)>i)throw new s.CramMalformedError("Symbol out of range");this.codes[r]=n;}));}));}buildCaches(){this.sortedCodes=Object.values(this.codes).sort(((e,t)=>e.bitLength-t.bitLength||e.bitCode-t.bitCode)),this.sortedValuesByBitCode=this.sortedCodes.map((e=>e.value)),this.sortedBitCodes=this.sortedCodes.map((e=>e.bitCode)),this.sortedBitLengthsByBitCode=this.sortedCodes.map((e=>e.bitLength));const e=Math.max(...this.sortedBitCodes);this.bitCodeToValue=new Array(e+1).fill(-1);for(let e=0;e<this.sortedBitCodes.length;e+=1)this.bitCodeToValue[this.sortedCodes[e].bitCode]=e;}decode(e,t,r,n){return this._decode(e,t,n.coreBlock)}_decodeZeroLengthCode(){return this.sortedCodes[0].value}_decode(e,t,r){const n=t.content;let i=0,A=0;for(let e=0;e<this.sortedCodes.length;e+=1){const t=this.sortedCodes[e].bitLength;A<<=t-i,A|=(0, a.getBits)(n,r,t-i),i=t;{const r=this.bitCodeToValue[A];if(r>-1&&this.sortedBitLengthsByBitCode[r]===t)return this.sortedValuesByBitCode[r];for(let r=e;this.sortedCodes[r+1].bitLength===t&&r<this.sortedCodes.length;r+=1)e+=1;}}throw new s.CramMalformedError("Huffman symbol not found.")}}t.default=A;},4141:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=class{constructor(e,t){this.parameters=e,this.dataType=t;}};},4442:e=>{e.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0;};},4562:function(e,t,r){var n,i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i);}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),s=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),s=0;s<r.length;s++)"default"!==r[s]&&i(t,e,r[s]);return a(t,e),t}),A=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.r4x8_uncompress=function(e){return d.decode(e)},t.r4x16_uncompress=function(e){return l.decode(e)},t.arith_uncompress=function(e){return (new o.default).decode(e)},t.fqzcomp_uncompress=function(e){return c.decode(e,[])},t.tok3_uncompress=function(e){const t=f.decode(e,0,"\0");return Uint8Array.from(Array.from(t).map((e=>e.charCodeAt(0))))};const o=A(r(9505)),c=s(r(2660)),d=s(r(8594)),l=s(r(9313)),f=s(r(1739));},4652:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=class{constructor(e){this.low=0,this.range=4294967295,this.code=0,this.FFnum=0,this.carry=0,this.cache=0;}RangeStartDecode(e){for(let t=0;t<5;t++)this.code=(this.code<<8)+e.ReadByte();this.code&=4294967295,this.code>>>=0;}RangeGetFrequency(e){return this.range=Math.floor(this.range/e),Math.floor(this.code/this.range)}RangeDecode(e,t,r,n){for(this.code-=t*this.range,this.range*=r;this.range<1<<24;)this.range*=256,this.code=256*this.code+e.ReadByte();}RangeShiftLow(e){if(this.low<4278190080|this.carry){for(e.WriteByte(this.cache+this.carry);this.FFnum;)e.WriteByte(this.carry-1),this.FFnum--;this.cache=this.low>>>24,this.carry=0;}else this.FFnum++;this.low<<=8,this.low>>>=0;}RangeEncode(e,t,r,n){const i=this.low;for(this.range=Math.floor(this.range/n),this.low+=t*this.range,this.low>>>=0,this.range*=r,this.low<i&&(0!=this.carry&&console.log("ERROR: Multiple carry"),this.carry=1);this.range<1<<24;)this.range*=256,this.RangeShiftLow(e);}RangeFinishEncode(e){for(let t=0;t<5;t++)this.RangeShiftLow(e);}};},4674:e=>{e.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"};},4823:e=>{var t=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e;}return t}();e.exports=function(e,r,n,i){var a=t,s=i+n;e^=-1;for(var A=i;A<s;A++)e=e>>>8^a[255&(e^r[A])];return -1^e};},4997:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.CramRecord=void 0;var i=r(7480);Object.defineProperty(t,"CramRecord",{enumerable:!0,get:function(){return n(i).default}});var a=r(8751);Object.defineProperty(t,"default",{enumerable:!0,get:function(){return n(a).default}});},5011:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.parseHeaderText=function(e){const t=e.split(/\r?\n/),r=[];for(const e of t){const[t,...n]=e.split(/\t/);t&&r.push({tag:t.slice(1),data:n.map((e=>{const t=e.indexOf(":");return -1!==t?{tag:e.slice(0,t),value:e.slice(t+1)}:{tag:e,value:""}}))});}return r};},5159:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.IndexedCramFile=t.CraiIndex=t.CramFile=t.CramRecord=void 0;var i=r(4997);Object.defineProperty(t,"CramRecord",{enumerable:!0,get:function(){return i.CramRecord}}),Object.defineProperty(t,"CramFile",{enumerable:!0,get:function(){return n(i).default}});var a=r(6638);Object.defineProperty(t,"CraiIndex",{enumerable:!0,get:function(){return n(a).default}});var s=r(8223);Object.defineProperty(t,"IndexedCramFile",{enumerable:!0,get:function(){return n(s).default}});},6268:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.readStatsO0=function(e,t,r){let n=0,i=0,o=255&e.get();do{null==t.fc[o]&&(t.fc[o]=new s.default.FC),t.fc[o].F=255&e.get(),t.fc[o].F>=128&&(t.fc[o].F&=-129,t.fc[o].F=(127&t.fc[o].F)<<8|255&e.get()),t.fc[o].C=i,s.default.symbolInit(r[o],t.fc[o].C,t.fc[o].F),t.R||(t.R=new Array(a.TOTFREQ)),t.R.fill(o,i,i+t.fc[o].F),i+=t.fc[o].F,0===n&&o+1===(255&e.getByteAt(e.position()))?(o=255&e.get(),n=255&e.get()):0!==n?(n-=1,o+=1):o=255&e.get();}while(0!==o);A(i<a.TOTFREQ);},t.readStatsO1=function(e,t,r){let n=0,i=255&e.get();do{let o=0,c=0,d=255&e.get();null==t[i]&&(t[i]=new s.default.AriDecoder);do{null==t[i].fc[d]&&(t[i].fc[d]=new s.default.FC),t[i].fc[d].F=255&e.get(),t[i].fc[d].F>=128&&(t[i].fc[d].F&=-129,t[i].fc[d].F=(127&t[i].fc[d].F)<<8|255&e.get()),t[i].fc[d].C=c,0===t[i].fc[d].F&&(t[i].fc[d].F=a.TOTFREQ),null==r[i][d]&&(r[i][d]=new s.default.RansDecSymbol),s.default.symbolInit(r[i][d],t[i].fc[d].C,t[i].fc[d].F),null==t[i].R&&(t[i].R=new Array(a.TOTFREQ)),t[i].R.fill(d,c,c+t[i].fc[d].F),c+=t[i].fc[d].F,A(c<=a.TOTFREQ),0===o&&d+1===(255&e.getByteAt(e.position()))?(d=255&e.get(),o=255&e.get()):0!==o?(o-=1,d+=1):d=255&e.get();}while(0!==d);0===n&&i+1===(255&e.getByteAt(e.position()))?(i=255&e.get(),n=255&e.get()):0!==n?(n-=1,i+=1):i=255&e.get();}while(0!==i)};const i=r(6272),a=r(7151),s=n(r(9301));function A(e){if(!e)throw new i.CramMalformedError("assertion failed")}},6272:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CramArgumentError=t.CramSizeLimitError=t.CramMalformedError=t.CramUnimplementedError=t.CramError=void 0;class r extends Error{}t.CramError=r;class n extends Error{}t.CramUnimplementedError=n,t.CramMalformedError=class extends r{},t.CramSizeLimitError=class extends r{},t.CramArgumentError=class extends r{};},6612:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=class{readByte(){throw new Error("abstract method readByte() not implemented")}read(e,t,r){let n=0;for(;n<r;){const r=this.readByte();if(r<0)return 0===n?-1:n;e[t++]=r,n++;}return n}writeByte(e){throw new Error("abstract method readByte() not implemented")}seek(e){throw new Error("abstract method seek() not implemented")}write(e,t,r){let n;for(n=0;n<r;n++)this.writeByte(e[t++]);return r}flush(){}};},6638:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});const n=r(6272),i=r(6727),a=r(2169);function s(e,t){const[r,n,i,a,s,A]=t,o=r;e[o]||(e[o]=[]),e[o].push({start:n,span:i,containerStart:a,sliceStart:s,sliceBytes:A});}t.default=class{constructor(e){this.filehandle=(0, i.open)(e.url,e.path,e.filehandle);}async parseIndex(){const e={},t=31===(r=await this.filehandle.readFile())[0]&&139===r[1]?(0, a.unzip)(r):r;var r;const i=new DataView(t.buffer);if(t.length>4&&21578050===i.getUint32(0,!0))throw new n.CramMalformedError("invalid .crai index file. note: file appears to be a .bai index. this is technically legal but please open a github issue if you need support");let A=[],o="";for(const r of t)if(r>=48&&r<=57||!o&&45===r)o+=String.fromCharCode(r);else if(9===r)A.push(Number.parseInt(o,10)),o="";else if(10===r)A.push(Number.parseInt(o,10)),o="",s(e,A),A=[];else if(13!==r&&32!==r)throw new n.CramMalformedError("invalid .crai index file");return o&&A.push(Number.parseInt(o,10)),6===A.length&&s(e,A),Object.entries(e).forEach((([t,r])=>{const n=r;e[t]=n.sort(((e,t)=>e.start-t.start||e.span-t.span));})),e}getIndex(){return this.parseIndexP||(this.parseIndexP=this.parseIndex().catch((e=>{throw this.parseIndexP=void 0,e}))),this.parseIndexP}async hasDataForReferenceSequence(e){return !!(await this.getIndex())[e]}async getEntriesForRange(e,t,r){const n=(await this.getIndex())[e];if(!n)return [];const i=e=>{const n=e.start,i=e.start+e.span;return n>r?-1:i<=t?1:0},a=[];for(const e of n)0===i(e)&&a.push(e);return a}};},6727:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.RemoteFile=t.LocalFile=void 0,t.open=function(e,t,r){if(r)return r;if(e)return new n.RemoteFile(e);if(t)return new n.LocalFile(t);throw new Error("no url, path, or filehandle provided, cannot open")};const n=r(8301);var i=r(8301);Object.defineProperty(t,"LocalFile",{enumerable:!0,get:function(){return i.LocalFile}}),Object.defineProperty(t,"RemoteFile",{enumerable:!0,get:function(){return i.RemoteFile}});},6761:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CramBufferOverrunError=void 0,t.getBits=function(e,t,n){let i=0;if(t.bytePosition+(7-t.bitPosition+n)/8>e.length)throw new r("read error during decoding. the file seems to be truncated.");for(let r=n;r;r--)i<<=1,i|=e[t.bytePosition]>>t.bitPosition&1,t.bitPosition-=1,t.bitPosition<0&&(t.bytePosition+=1),t.bitPosition&=7;return i};class r extends Error{}t.CramBufferOverrunError=r;},6951:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.concatUint8Array=function(e){const t=new Uint8Array(function(e){let t=0;for(const r of e)t+=r.length;return t}(e));let r=0;for(const n of e)t.set(n,r),r+=n.length;return t};},7083:(e,t,r)=>{var n=r(1447),i=r(9805),a=r(1996),s=r(9681),A=r(4674),o=r(4442),c=r(7414),d=Object.prototype.toString;function l(e){if(!(this instanceof l))return new l(e);this.options=i.assign({chunkSize:16384,windowBits:0,to:""},e||{});var t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(15&t.windowBits||(t.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new o,this.strm.avail_out=0;var r=n.inflateInit2(this.strm,t.windowBits);if(r!==s.Z_OK)throw new Error(A[r]);if(this.header=new c,n.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=a.string2buf(t.dictionary):"[object ArrayBuffer]"===d.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(r=n.inflateSetDictionary(this.strm,t.dictionary))!==s.Z_OK))throw new Error(A[r])}function f(e,t){var r=new l(t);if(r.push(e,!0),r.err)throw r.msg||A[r.err];return r.result}l.prototype.push=function(e,t){var r,A,o,c,l,f=this.strm,u=this.options.chunkSize,g=this.options.dictionary,h=!1;if(this.ended)return !1;A=t===~~t?t:!0===t?s.Z_FINISH:s.Z_NO_FLUSH,"string"==typeof e?f.input=a.binstring2buf(e):"[object ArrayBuffer]"===d.call(e)?f.input=new Uint8Array(e):f.input=e,f.next_in=0,f.avail_in=f.input.length;do{if(0===f.avail_out&&(f.output=new i.Buf8(u),f.next_out=0,f.avail_out=u),(r=n.inflate(f,s.Z_NO_FLUSH))===s.Z_NEED_DICT&&g&&(r=n.inflateSetDictionary(this.strm,g)),r===s.Z_BUF_ERROR&&!0===h&&(r=s.Z_OK,h=!1),r!==s.Z_STREAM_END&&r!==s.Z_OK)return this.onEnd(r),this.ended=!0,!1;f.next_out&&(0!==f.avail_out&&r!==s.Z_STREAM_END&&(0!==f.avail_in||A!==s.Z_FINISH&&A!==s.Z_SYNC_FLUSH)||("string"===this.options.to?(o=a.utf8border(f.output,f.next_out),c=f.next_out-o,l=a.buf2string(f.output,o),f.next_out=c,f.avail_out=u-c,c&&i.arraySet(f.output,f.output,o,c,0),this.onData(l)):this.onData(i.shrinkBuf(f.output,f.next_out)))),0===f.avail_in&&0===f.avail_out&&(h=!0);}while((f.avail_in>0||0===f.avail_out)&&r!==s.Z_STREAM_END);return r===s.Z_STREAM_END&&(A=s.Z_FINISH),A===s.Z_FINISH?(r=n.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===s.Z_OK):A!==s.Z_SYNC_FLUSH||(this.onEnd(s.Z_OK),f.avail_out=0,!0)},l.prototype.onData=function(e){this.chunks.push(e);},l.prototype.onEnd=function(e){e===s.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=i.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg;},t.Inflate=l,t.inflate=f,t.inflateRaw=function(e,t){return (t=t||{}).raw=!0,f(e,t)},t.ungzip=f;},7151:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TOTFREQ=t.TF_SHIFT=t.RANS_BYTE_L=void 0,t.TF_SHIFT=12,t.TOTFREQ=4096,t.RANS_BYTE_L=1<<23;},7293:e=>{e.exports=function(e,t){var r,n,i,a,s,A,o,c,d,l,f,u,g,h,C,I,_,m,B,p,w,E,Q,y,b;r=e.state,n=e.next_in,y=e.input,i=n+(e.avail_in-5),a=e.next_out,b=e.output,s=a-(t-e.avail_out),A=a+(e.avail_out-257),o=r.dmax,c=r.wsize,d=r.whave,l=r.wnext,f=r.window,u=r.hold,g=r.bits,h=r.lencode,C=r.distcode,I=(1<<r.lenbits)-1,_=(1<<r.distbits)-1;e:do{g<15&&(u+=y[n++]<<g,g+=8,u+=y[n++]<<g,g+=8),m=h[u&I];t:for(;;){if(u>>>=B=m>>>24,g-=B,0==(B=m>>>16&255))b[a++]=65535&m;else {if(!(16&B)){if(64&B){if(32&B){r.mode=12;break e}e.msg="invalid literal/length code",r.mode=30;break e}m=h[(65535&m)+(u&(1<<B)-1)];continue t}for(p=65535&m,(B&=15)&&(g<B&&(u+=y[n++]<<g,g+=8),p+=u&(1<<B)-1,u>>>=B,g-=B),g<15&&(u+=y[n++]<<g,g+=8,u+=y[n++]<<g,g+=8),m=C[u&_];;){if(u>>>=B=m>>>24,g-=B,16&(B=m>>>16&255)){if(w=65535&m,g<(B&=15)&&(u+=y[n++]<<g,(g+=8)<B&&(u+=y[n++]<<g,g+=8)),(w+=u&(1<<B)-1)>o){e.msg="invalid distance too far back",r.mode=30;break e}if(u>>>=B,g-=B,w>(B=a-s)){if((B=w-B)>d&&r.sane){e.msg="invalid distance too far back",r.mode=30;break e}if(E=0,Q=f,0===l){if(E+=c-B,B<p){p-=B;do{b[a++]=f[E++];}while(--B);E=a-w,Q=b;}}else if(l<B){if(E+=c+l-B,(B-=l)<p){p-=B;do{b[a++]=f[E++];}while(--B);if(E=0,l<p){p-=B=l;do{b[a++]=f[E++];}while(--B);E=a-w,Q=b;}}}else if(E+=l-B,B<p){p-=B;do{b[a++]=f[E++];}while(--B);E=a-w,Q=b;}for(;p>2;)b[a++]=Q[E++],b[a++]=Q[E++],b[a++]=Q[E++],p-=3;p&&(b[a++]=Q[E++],p>1&&(b[a++]=Q[E++]));}else {E=a-w;do{b[a++]=b[E++],b[a++]=b[E++],b[a++]=b[E++],p-=3;}while(p>2);p&&(b[a++]=b[E++],p>1&&(b[a++]=b[E++]));}break}if(64&B){e.msg="invalid distance code",r.mode=30;break e}m=C[(65535&m)+(u&(1<<B)-1)];}}break}}while(n<i&&a<A);n-=p=g>>3,u&=(1<<(g-=p<<3))-1,e.next_in=n,e.next_out=a,e.avail_in=n<i?i-n+5:5-(n-i),e.avail_out=a<A?A-a+257:257-(a-A),r.hold=u,r.bits=g;};},7392:e=>{class t{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.cache=new Map,this.oldCache=new Map,this._size=0;}_set(e,t){this.cache.set(e,t),this._size++,this._size>=this.maxSize&&(this._size=0,this.oldCache=this.cache,this.cache=new Map);}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){const t=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,t),t}}set(e,t){return this.cache.has(e)?this.cache.set(e,t):this._set(e,t),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){return this.cache.has(e)?this.cache.get(e):this.oldCache.has(e)?this.oldCache.get(e):void 0}delete(e){const t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0;}*keys(){for(const[e]of this)yield e;}*values(){for(const[,e]of this)yield e;}*[Symbol.iterator](){for(const e of this.cache)yield e;for(const e of this.oldCache){const[t]=e;this.cache.has(t)||(yield e);}}get size(){let e=0;for(const t of this.oldCache.keys())this.cache.has(t)||e++;return this._size+e}}e.exports=t;},7414:e=>{e.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1;};},7480:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MateFlagsDecoder=t.CramFlagsDecoder=t.BamFlagsDecoder=t.MateFlags=t.CramFlags=t.BamFlags=void 0;const i=n(r(588)),a={a:0,A:0,c:1,C:1,g:2,G:2,t:3,T:3,n:4,N:4};function s(e){const t={};for(const[r,n]of e)t[`is${n}`]=e=>!!(e&r),t[`set${n}`]=e=>e|r;return t}t.BamFlags=[[1,"Paired"],[2,"ProperlyPaired"],[4,"SegmentUnmapped"],[8,"MateUnmapped"],[16,"ReverseComplemented"],[32,"MateReverseComplemented"],[64,"Read1"],[128,"Read2"],[256,"Secondary"],[512,"FailedQc"],[1024,"Duplicate"],[2048,"Supplementary"]],t.CramFlags=[[1,"PreservingQualityScores"],[2,"Detached"],[4,"WithMateDownstream"],[8,"DecodeSequenceAsStar"]],t.MateFlags=[[1,"OnNegativeStrand"],[2,"Unmapped"]],t.BamFlagsDecoder=s(t.BamFlags),t.CramFlagsDecoder=s(t.CramFlags),t.MateFlagsDecoder=s(t.MateFlags),t.default=class{constructor({flags:e,cramFlags:t,readLength:r,mappingQuality:n,lengthOnRef:i,qualityScores:a,mateRecordNumber:s,readBases:A,readFeatures:o,mateToUse:c,readGroupId:d,readName:l,sequenceId:f,uniqueId:u,templateSize:g,alignmentStart:h,tags:C}){this.flags=e,this.cramFlags=t,this.readLength=r,this.mappingQuality=n,this.lengthOnRef=i,this.qualityScores=a,A&&(this.readBases=A),this.readGroupId=d,this.readName=l,this.sequenceId=f,this.uniqueId=u,this.templateSize=g,this.alignmentStart=h,this.tags=C,o&&(this.readFeatures=o),c&&(this.mate={flags:c.mateFlags,readName:c.mateReadName,sequenceId:c.mateSequenceId,alignmentStart:c.mateAlignmentStart}),s&&(this.mateRecordNumber=s);}isPaired(){return !!(this.flags&i.default.BAM_FPAIRED)}isProperlyPaired(){return !!(this.flags&i.default.BAM_FPROPER_PAIR)}isSegmentUnmapped(){return !!(this.flags&i.default.BAM_FUNMAP)}isMateUnmapped(){return !!(this.flags&i.default.BAM_FMUNMAP)}isReverseComplemented(){return !!(this.flags&i.default.BAM_FREVERSE)}isMateReverseComplemented(){return !!(this.flags&i.default.BAM_FMREVERSE)}isRead1(){return !!(this.flags&i.default.BAM_FREAD1)}isRead2(){return !!(this.flags&i.default.BAM_FREAD2)}isSecondary(){return !!(this.flags&i.default.BAM_FSECONDARY)}isFailedQc(){return !!(this.flags&i.default.BAM_FQCFAIL)}isDuplicate(){return !!(this.flags&i.default.BAM_FDUP)}isSupplementary(){return !!(this.flags&i.default.BAM_FSUPPLEMENTARY)}isDetached(){return !!(this.cramFlags&i.default.CRAM_FLAG_DETACHED)}hasMateDownStream(){return !!(this.cramFlags&i.default.CRAM_FLAG_MATE_DOWNSTREAM)}isPreservingQualityScores(){return !!(this.cramFlags&i.default.CRAM_FLAG_PRESERVE_QUAL_SCORES)}isUnknownBases(){return !!(this.cramFlags&i.default.CRAM_FLAG_NO_SEQ)}getReadBases(){if(!this.readBases&&this._refRegion){const e=function(e,t){if(!e.lengthOnRef&&!e.readLength)return null;if(e.isUnknownBases())return null;const r=e.alignmentStart-t.start;if(!e.readFeatures)return t.seq.slice(r,r+(e.lengthOnRef||0)).toUpperCase();let n="",i=r,a=0;for(;n.length<e.readLength;)if(a<e.readFeatures.length){const r=e.readFeatures[a];if("Q"===r.code||"q"===r.code)a+=1;else if(r.pos===n.length+1)if(a+=1,"b"===r.code){const e=r.data;n+=e,i+=e.length;}else "B"===r.code?(n+=r.data[0],i+=1):"X"===r.code?(n+=r.sub,i+=1):"I"===r.code?n+=r.data:"D"===r.code?i+=r.data:"i"===r.code?n+=r.data:"N"===r.code?i+=r.data:"S"===r.code?n+=r.data:"P"===r.code||r.code;else if(a<e.readFeatures.length){const e=t.seq.slice(i,i+r.pos-n.length-1);n+=e,i+=e.length;}}else {const r=t.seq.slice(i,i+e.readLength-n.length);n+=r,i+=r.length;}return n.toUpperCase()}(this,this._refRegion);e&&(this.readBases=e);}return this.readBases}getPairOrientation(){if(!this.isSegmentUnmapped()&&this.isPaired()&&!this.isMateUnmapped()&&this.mate&&this.sequenceId===this.mate.sequenceId){const e=this.isReverseComplemented()?"R":"F",t=this.isMateReverseComplemented()?"R":"F";let r=" ",n=" ";this.isRead1()?(r="1",n="2"):this.isRead2()&&(r="2",n="1");const i=[];let a=this.templateLength||this.templateSize;if(void 0===a)throw new Error("One of templateSize and templateLength must be set");return this.alignmentStart>this.mate.alignmentStart&&a>0&&(a=-a),a>0?(i[0]=e,i[1]=r,i[2]=t,i[3]=n):(i[2]=e,i[3]=r,i[0]=t,i[1]=n),i.join("")}return null}addReferenceSequence(e,t){this.readFeatures&&this.readFeatures.forEach((r=>{"X"===r.code&&function(e,t,r,n){const i=n.refPos-t.start,s=t.seq.charAt(i);s&&(n.ref=s);let A=a[s];void 0===A&&(A=4);const o=r.substitutionMatrix[A][n.data];o&&(n.sub=o);}(0,e,t,r);})),!this.readBases&&e.start<=this.alignmentStart&&e.end>=this.alignmentStart+(this.lengthOnRef||this.readLength)-1&&(this._refRegion=e);}toJSON(){const e={};return Object.keys(this).forEach((t=>{t.startsWith("_")||(e[t]=this[t]);})),e.readBases=this.getReadBases(),e}};},7580:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.cramFileDefinition=i,t.cramBlockHeader=a,t.cramBlockCrc32=s,t.cramTagDictionary=o,t.cramPreservationMap=c,t.isMappedSliceHeader=function(e){return "number"==typeof e.refSeqId},t.getSectionParsers=function(e){return {cramFileDefinition:i(),cramBlockHeader:a(),cramBlockCrc32:s(),cramDataSeriesEncodingMap:g(),cramTagEncodingMap:h(),cramCompressionHeader:{parser:(e,t)=>{const{value:r,offset:n}=c().parser(e,t);t=n;const{value:i,offset:a}=g().parser(e,t);t=a;const{value:s,offset:A}=h().parser(e,t);return t=A,{value:{dataSeriesEncoding:d(i),preservation:d(r),tagEncoding:d(s)},offset:t}}},cramEncoding:{parser:(e,t)=>u(e,t)},cramUnmappedSliceHeader:l(e),cramMappedSliceHeader:f(e),cramContainerHeader1:C(e),cramContainerHeader2:I(e)}};const n=r(2549);function i(){return {parser:(e,t=0)=>{const r=new DataView(e.buffer,e.byteOffset,e.length),n=new TextDecoder("utf8");let i=0;const a=n.decode(e.subarray(i,i+4));i+=4;const s=r.getUint8(i);i+=1;const A=r.getUint8(i);i+=1;const o=n.decode(e.subarray(i,i+20)).replaceAll("\0","");return i+=20,{value:{magic:a,majorVersion:s,minorVersion:A,fileId:o},offset:i}},maxLength:26}}function a(){return {parser:(e,t=0)=>{const r=e,i=new DataView(r.buffer,r.byteOffset,r.length);let a=0;const s=i.getUint8(a),A=["raw","gzip","bzip2","lzma","rans","rans4x16","arith","fqzcomp","tok3"][s];if(!A)throw new Error(`compression method number ${s} not implemented`);a+=1;const o=i.getUint8(a),c=["FILE_HEADER","COMPRESSION_HEADER","MAPPED_SLICE_HEADER","UNMAPPED_SLICE_HEADER","EXTERNAL_DATA","CORE_DATA"][o];if(!c)throw new Error(`invalid block content type id ${o}`);a+=1;const[d,l]=(0, n.parseItf8)(e,a);a+=l;const[f,u]=(0, n.parseItf8)(e,a);a+=u;const[g,h]=(0, n.parseItf8)(e,a);return a+=h,{offset:a,value:{uncompressedSize:g,compressedSize:f,contentId:d,contentType:c,compressionMethod:A}}},maxLength:17}}function s(){return {parser:(e,t)=>{const r=e,n=new DataView(r.buffer,r.byteOffset,r.length).getUint32(t,!0);return {offset:t+=4,value:{crc32:n}}},maxLength:4}}function A(e,t,r){const n=new TextDecoder("utf8").decode(e.subarray(t,r)),i=[];for(let e=0;e<n.length;e+=3)i.push(n.slice(e,e+3));return i}function o(){return {parser:(e,t)=>{const[r,i]=(0, n.parseItf8)(e,t);t+=i;const a=e.subarray(t,t+r);t+=r;const s=[];let o=0,c=0;for(;c<a.length;c++)a[c]||(s.push(A(a,o,c)),o=c+1);return c>o&&s.push(A(a,o,c)),{value:{size:r,ents:s},offset:t}}}}function c(){return {parser:(e,t)=>{const r=e,i=new DataView(r.buffer,r.byteOffset,r.length),[a,s]=(0, n.parseItf8)(e,t);t+=s;const[A,c]=(0, n.parseItf8)(e,t);t+=c;const d=[];for(let r=0;r<A;r++){const r=String.fromCharCode(e[t])+String.fromCharCode(e[t+1]);if(t+=2,"MI"===r||"UI"===r||"PI"===r||"RN"===r||"AP"===r||"RR"===r)d.push({key:r,value:!!i.getUint8(t)}),t+=1;else if("SM"===r)d.push({key:r,value:[i.getUint8(t),i.getUint8(t+1),i.getUint8(t+2),i.getUint8(t+3),i.getUint8(t+4)]}),t+=5;else {if("TD"!==r)throw new Error(`unknown key ${r}`);{const{offset:n,value:i}=o().parser(e,t);d.push({key:r,value:i.ents}),t=n;}}}return {value:{mapSize:a,mapCount:A,ents:d},offset:t}}}}function d(e){const t={};for(const{key:r,value:n}of e.ents)t[r]&&console.warn(`duplicate key ${r} in map`),t[r]=n;return t}function l(e){return {parser:(t,r)=>{const[i,a]=(0, n.parseItf8)(t,r);r+=a;let s=0;if(e>=3){const[e,i]=(0, n.parseLtf8)(t,r);r+=i,s=e;}else if(2===e){const[e,i]=(0, n.parseItf8)(t,r);r+=i,s=e;}else console.warn("recordCounter=0");const[A,o]=(0, n.parseItf8)(t,r);r+=o;const[c,d]=(0, n.parseItf8)(t,r);r+=d;const l=[];for(let e=0;e<c;e++){const[e,i]=(0, n.parseItf8)(t,r);r+=i,l.push(e);}let f;return e>=2&&(f=[...t.subarray(r,r+16)],r+=16),{value:{recordCounter:s,md5:f,contentIds:l,numContentIds:c,numBlocks:A,numRecords:i},offset:r}},maxLength:e=>40+5*e}}function f(e){return {parser:(t,r)=>{const[i,a]=(0, n.parseItf8)(t,r);r+=a;const[s,A]=(0, n.parseItf8)(t,r);r+=A;const[o,c]=(0, n.parseItf8)(t,r);r+=c;const[d,l]=(0, n.parseItf8)(t,r);r+=l;let f=0;if(e>=3){const[e,i]=(0, n.parseLtf8)(t,r);r+=i,f=e;}else if(2===e){const[e,i]=(0, n.parseItf8)(t,r);r+=i,f=e;}else console.warn("majorVersion is <2, recordCounter set to 0");const[u,g]=(0, n.parseItf8)(t,r);r+=g;const[h,C]=(0, n.parseItf8)(t,r);r+=C;const I=[];for(let e=0;e<h;e++){const[e,i]=(0, n.parseItf8)(t,r);r+=i,I.push(e);}const[_,m]=(0, n.parseItf8)(t,r);let B;return r+=m,e>=2&&(B=[...t.subarray(r,r+16)],r+=16),{value:{md5:B,numBlocks:u,numRecords:d,numContentIds:h,refSeqSpan:o,refSeqId:i,refSeqStart:s,recordCounter:f,refBaseBlockId:_,contentIds:I},offset:r}},maxLength:e=>60+5*e}}function u(e,t){const r=e,i=new DataView(r.buffer,r.byteOffset,r.length),[a,s]=(0, n.parseItf8)(e,t);t+=s;const[A,o]=(0, n.parseItf8)(e,t);t+=o;const c={};if(0===a);else if(1===a){const[r,i]=(0, n.parseItf8)(e,t);c.blockContentId=r,t+=i;}else if(2===a){const[r,i]=(0, n.parseItf8)(e,t);c.offset=r,t+=i;const[a,s]=(0, n.parseItf8)(e,t);c.M=a,t+=s;}else if(3===a){const r=(0, n.parseItf8)(e,t),i=r[0];t+=r[1];const a=[];for(let r=0;r<i;r++){const r=(0, n.parseItf8)(e,t);a.push(r[0]),t+=r[1];}c.symbols=a;const s=(0, n.parseItf8)(e,t),A=r[0];c.numLengths=A,c.numCodes=i,c.numLengths=A,t+=s[1];const o=[];for(let r=0;r<A;r++){const r=(0, n.parseItf8)(e,t);t+=r[1],o.push(r[0]);}c.bitLengths=o;}else if(4===a){const{value:r,offset:n}=u(e,t);c.lengthsEncoding=r,t=n;const{value:i,offset:a}=u(e,t);c.valuesEncoding=i,t=a;}else if(5===a){c.stopByte=i.getUint8(t),t+=1;const[r,a]=(0, n.parseItf8)(e,t);c.blockContentId=r,t+=a;}else if(6===a){const[r,i]=(0, n.parseItf8)(e,t);c.offset=r,t+=i;const[a,s]=(0, n.parseItf8)(e,t);c.length=a,t+=s;}else if(7===a){const[r,i]=(0, n.parseItf8)(e,t);c.offset=r,t+=i;const[a,s]=(0, n.parseItf8)(e,t);c.K=a,t+=s;}else if(8===a){const[r,i]=(0, n.parseItf8)(e,t);c.offset=r,t+=i;const[a,s]=(0, n.parseItf8)(e,t);c.log2m=a,t+=s;}else {if(9!==a)throw new Error(`unknown codecId ${a}`);{const[r,i]=(0, n.parseItf8)(e,t);c.offset=r,t+=i;}}return {value:{codecId:a,parametersBytes:A,parameters:c},offset:t}}function g(){return {parser:(e,t)=>{const[r,i]=(0, n.parseItf8)(e,t);t+=i;const[a,s]=(0, n.parseItf8)(e,t);t+=s;const A=[];for(let r=0;r<a;r++){const r=String.fromCharCode(e[t])+String.fromCharCode(e[t+1]);t+=2;const{value:n,offset:i}=u(e,t);t=i,A.push({key:r,value:n});}return {value:{mapSize:r,ents:A,mapCount:a},offset:t}}}}function h(){return {parser:(e,t)=>{const[r,i]=(0, n.parseItf8)(e,t);t+=i;const[a,s]=(0, n.parseItf8)(e,t);t+=s;const A=[];for(let r=0;r<a;r++){const[r,i]=(0, n.parseItf8)(e,t);t+=i;const a=String.fromCharCode(r>>16&255)+String.fromCharCode(r>>8&255)+String.fromCharCode(255&r),{value:s,offset:o}=u(e,t);t=o,A.push({key:a,value:s});}return {value:{mapSize:r,ents:A,mapCount:a},offset:t}}}}function C(e){return {maxLength:52,parser:(t,r)=>{const i=t,a=new DataView(i.buffer,i.byteOffset,i.length).getInt32(r,!0);r+=4;const[s,A]=(0, n.parseItf8)(t,r);r+=A;const[o,c]=(0, n.parseItf8)(t,r);r+=c;const[d,l]=(0, n.parseItf8)(t,r);r+=l;const[f,u]=(0, n.parseItf8)(t,r);r+=u;let g,h=0;if(e>=3){const[e,i]=(0, n.parseLtf8)(t,r);h=e,r+=i;}else if(2===e){const[e,i]=(0, n.parseItf8)(t,r);h=e,r+=i;}else console.warn("setting recordCounter=0");if(e>1){const[e,i]=(0, n.parseLtf8)(t,r);g=e,r+=i;}const[C,I]=(0, n.parseItf8)(t,r);r+=I;const[_,m]=(0, n.parseItf8)(t,r);return {value:{length:a,refSeqId:s,refSeqStart:o,alignmentSpan:d,numBlocks:C,numLandmarks:_,numBases:g,recordCounter:h,numRecords:f},offset:r+=m}}}}function I(e){return {parser:(t,r)=>{const i=t,a=new DataView(i.buffer,i.byteOffset,i.length),[s,A]=(0, n.parseItf8)(t,r);r+=A;const o=[];for(let e=0;e<s;e++){const[e,i]=(0, n.parseItf8)(t,r);r+=i,o.push(e);}let c;return e>=3&&(c=a.getUint32(r,!0),r+=4),{value:{...void 0===c?{}:{crc32:c},numLandmarks:s,landmarks:o},offset:r}},maxLength:e=>5+5*e+4}}},7593:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});},7934:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=n(r(4141)),a=r(2549);class s extends i.default{constructor(e,t,r){super(e,t),this.instantiateCodec=r;}decode(e,t,r,n){const i=this._getLengthCodec().decode(e,t,r,n)||0,a=this._getDataCodec(),s=new Uint8Array(i);for(let A=0;A<i;A+=1)s[A]=a.decode(e,t,r,n)||0;return s}_getLengthCodec(){const e=this.parameters.lengthsEncoding;return this.instantiateCodec(e,"int")}_getDataCodec(){const e=this.parameters.valuesEncoding;return this.instantiateCodec(e,"byte")}}t.default=s,"_getLengthCodec _getDataCodec".split(" ").forEach((e=>{(0, a.tinyMemoize)(s,e);}));},8006:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=n(r(4141)),a=r(6272),s=r(6761);class A extends i.default{decode(e,t,r,n){const{blockContentId:i}=this.parameters,s=r[i];if(!s)throw new a.CramMalformedError(`no block found with content ID ${i}`);const A=n.externalBlocks.getCursor(i);return this._decodeByteArray(s,A)}_decodeByteArray(e,t){const r=e.content,{stopByte:n}=this.parameters,i=t.bytePosition;let a=t.bytePosition;for(;r[a]!==n&&a<r.length;){if(a===r.length)throw new s.CramBufferOverrunError("byteArrayStop reading beyond length of data buffer?");a+=1;}return t.bytePosition=a+1,r.subarray(i,a)}}t.default=A;},8223:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=n(r(4997)),a=r(6272);t.default=class{constructor(e){if(this.cram=e.cram??new i.default({url:e.cramUrl,path:e.cramPath,filehandle:e.cramFilehandle,seqFetch:e.seqFetch,checkSequenceMD5:e.checkSequenceMD5,cacheSize:e.cacheSize}),!(this.cram instanceof i.default))throw new Error("invalid arguments: no cramfile");this.index=e.index;}async getRecordsForRange(e,t,r,n={}){if(n.viewAsPairs=n.viewAsPairs||!1,n.pairAcrossChr=n.pairAcrossChr||!1,n.maxInsertSize=n.maxInsertSize||2e5,"string"==typeof e)throw new a.CramUnimplementedError("string sequence names not yet supported");const i=e,s=await this.index.getEntriesForRange(i,t,r),A=await Promise.all(s.map((n=>this.getRecordsInSlice(n,(n=>n.sequenceId===e&&n.alignmentStart<=r&&void 0!==n.lengthOnRef&&n.alignmentStart+n.lengthOnRef-1>=t)))));let o=Array.prototype.concat(...A);if(n.viewAsPairs){const e={},t={};for(const r of o){const n=r.readName;if(void 0===n)throw new Error("readName undefined");const i=r.uniqueId;e[n]||(e[n]=0),e[n]+=1,t[i]=1;}const r={};Object.entries(e).forEach((([e,t])=>{1===t&&(r[e]=!0);}));const a=[];for(const e of o){const t=e.readName;if(void 0===t)throw new Error("readName undefined");if(r[t]&&e.mate&&(e.mate.sequenceId===i||n.pairAcrossChr)&&Math.abs(e.alignmentStart-e.mate.alignmentStart)<n.maxInsertSize){const t=this.index.getEntriesForRange(e.mate.sequenceId,e.mate.alignmentStart,e.mate.alignmentStart+1);a.push(t);}}const s=await Promise.all(a);let A=[];for(const e of s)A.push(...e);A=A.sort(((e,t)=>e.toString().localeCompare(t.toString()))).filter(((e,t,r)=>!t||e.toString()!==r[t-1].toString()));const d=[];for(const e of A){let n=this.cram.featureCache.get(e.toString());n||(n=this.getRecordsInSlice(e,(()=>!0)),this.cram.featureCache.set(e.toString(),n));const i=n.then((e=>{const n=[];for(const i of e){if(void 0===i.readName)throw new Error("readName undefined");r[i.readName]&&!t[i.uniqueId]&&n.push(i);}return n}));d.push(i);}const l=await Promise.all(d);if(l.length){const e=l.reduce(((e,t)=>e.concat(t)));o=o.concat(e);}}return o}getRecordsInSlice({containerStart:e,sliceStart:t,sliceBytes:r},n){return this.cram.getContainerAtPosition(e).getSlice(t,r).getRecords(n)}hasDataForReferenceSequence(e){return this.index.hasDataForReferenceSequence(e)}};},8301:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i);}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r);},a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.LocalFile=t.RemoteFile=t.BlobFile=void 0,t.fromUrl=o,t.open=function(e,t,r,n={}){if(void 0!==r)return r;if(void 0!==e)return o(e,n);if(void 0!==t)return new s.default(t,n);throw new Error("no url, path, or filehandle provided, cannot open")};const s=a(r(2616)),A=a(r(8485));function o(e,t={}){return new A.default(e,t)}i(r(7593),t);var c=r(1064);Object.defineProperty(t,"BlobFile",{enumerable:!0,get:function(){return a(c).default}});var d=r(8485);Object.defineProperty(t,"RemoteFile",{enumerable:!0,get:function(){return a(d).default}});var l=r(2616);Object.defineProperty(t,"LocalFile",{enumerable:!0,get:function(){return a(l).default}});},8411:(e,t,r)=>{var n,i=r(9805),a=r(3665),s=r(3269),A=r(4823),o=r(4674),c=-2,d=258,l=262,f=103,u=113,g=666;function h(e,t){return e.msg=o[t],t}function C(e){return (e<<1)-(e>4?9:0)}function I(e){for(var t=e.length;--t>=0;)e[t]=0;}function _(e){var t=e.state,r=t.pending;r>e.avail_out&&(r=e.avail_out),0!==r&&(i.arraySet(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0));}function m(e,t){a._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,_(e.strm);}function B(e,t){e.pending_buf[e.pending++]=t;}function p(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t;}function w(e,t,r,n){var a=e.avail_in;return a>n&&(a=n),0===a?0:(e.avail_in-=a,i.arraySet(t,e.input,e.next_in,a,r),1===e.state.wrap?e.adler=s(e.adler,t,a,r):2===e.state.wrap&&(e.adler=A(e.adler,t,a,r)),e.next_in+=a,e.total_in+=a,a)}function E(e,t){var r,n,i=e.max_chain_length,a=e.strstart,s=e.prev_length,A=e.nice_match,o=e.strstart>e.w_size-l?e.strstart-(e.w_size-l):0,c=e.window,f=e.w_mask,u=e.prev,g=e.strstart+d,h=c[a+s-1],C=c[a+s];e.prev_length>=e.good_match&&(i>>=2),A>e.lookahead&&(A=e.lookahead);do{if(c[(r=t)+s]===C&&c[r+s-1]===h&&c[r]===c[a]&&c[++r]===c[a+1]){a+=2,r++;do{}while(c[++a]===c[++r]&&c[++a]===c[++r]&&c[++a]===c[++r]&&c[++a]===c[++r]&&c[++a]===c[++r]&&c[++a]===c[++r]&&c[++a]===c[++r]&&c[++a]===c[++r]&&a<g);if(n=d-(g-a),a=g-d,n>s){if(e.match_start=t,s=n,n>=A)break;h=c[a+s-1],C=c[a+s];}}}while((t=u[t&f])>o&&0!==--i);return s<=e.lookahead?s:e.lookahead}function Q(e){var t,r,n,a,s,A=e.w_size;do{if(a=e.window_size-e.lookahead-e.strstart,e.strstart>=A+(A-l)){i.arraySet(e.window,e.window,A,A,0),e.match_start-=A,e.strstart-=A,e.block_start-=A,t=r=e.hash_size;do{n=e.head[--t],e.head[t]=n>=A?n-A:0;}while(--r);t=r=A;do{n=e.prev[--t],e.prev[t]=n>=A?n-A:0;}while(--r);a+=A;}if(0===e.strm.avail_in)break;if(r=w(e.strm,e.window,e.strstart+e.lookahead,a),e.lookahead+=r,e.lookahead+e.insert>=3)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+3-1])&e.hash_mask,e.prev[s&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=s,s++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead<l&&0!==e.strm.avail_in)}function y(e,t){for(var r,n;;){if(e.lookahead<l){if(Q(e),e.lookahead<l&&0===t)return 1;if(0===e.lookahead)break}if(r=0,e.lookahead>=3&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+3-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==r&&e.strstart-r<=e.w_size-l&&(e.match_length=E(e,r)),e.match_length>=3)if(n=a._tr_tally(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do{e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+3-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;}while(0!==--e.match_length);e.strstart++;}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else n=a._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(m(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,4===t?(m(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(m(e,!1),0===e.strm.avail_out)?1:2}function b(e,t){for(var r,n,i;;){if(e.lookahead<l){if(Q(e),e.lookahead<l&&0===t)return 1;if(0===e.lookahead)break}if(r=0,e.lookahead>=3&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+3-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,0!==r&&e.prev_length<e.max_lazy_match&&e.strstart-r<=e.w_size-l&&(e.match_length=E(e,r),e.match_length<=5&&(1===e.strategy||3===e.match_length&&e.strstart-e.match_start>4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-3,n=a._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=i&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+3-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);}while(0!==--e.prev_length);if(e.match_available=0,e.match_length=2,e.strstart++,n&&(m(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if((n=a._tr_tally(e,0,e.window[e.strstart-1]))&&m(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--;}return e.match_available&&(n=a._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,4===t?(m(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(m(e,!1),0===e.strm.avail_out)?1:2}function D(e,t,r,n,i){this.good_length=e,this.max_lazy=t,this.nice_length=r,this.max_chain=n,this.func=i;}function S(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=8,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new i.Buf16(1146),this.dyn_dtree=new i.Buf16(122),this.bl_tree=new i.Buf16(78),I(this.dyn_ltree),I(this.dyn_dtree),I(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new i.Buf16(16),this.heap=new i.Buf16(573),I(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new i.Buf16(573),I(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0;}function k(e){var t;return e&&e.state?(e.total_in=e.total_out=0,e.data_type=2,(t=e.state).pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?42:u,e.adler=2===t.wrap?0:1,t.last_flush=0,a._tr_init(t),0):h(e,c)}function v(e){var t,r=k(e);return 0===r&&((t=e.state).window_size=2*t.w_size,I(t.head),t.max_lazy_match=n[t.level].max_lazy,t.good_match=n[t.level].good_length,t.nice_match=n[t.level].nice_length,t.max_chain_length=n[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=2,t.match_available=0,t.ins_h=0),r}function R(e,t,r,n,a,s){if(!e)return c;var A=1;if(-1===t&&(t=6),n<0?(A=0,n=-n):n>15&&(A=2,n-=16),a<1||a>9||8!==r||n<8||n>15||t<0||t>9||s<0||s>4)return h(e,c);8===n&&(n=9);var o=new S;return e.state=o,o.strm=e,o.wrap=A,o.gzhead=null,o.w_bits=n,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=a+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+3-1)/3),o.window=new i.Buf8(2*o.w_size),o.head=new i.Buf16(o.hash_size),o.prev=new i.Buf16(o.w_size),o.lit_bufsize=1<<a+6,o.pending_buf_size=4*o.lit_bufsize,o.pending_buf=new i.Buf8(o.pending_buf_size),o.d_buf=1*o.lit_bufsize,o.l_buf=3*o.lit_bufsize,o.level=t,o.strategy=s,o.method=r,v(e)}n=[new D(0,0,0,0,(function(e,t){var r=65535;for(r>e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(Q(e),0===e.lookahead&&0===t)return 1;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,m(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-l&&(m(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(m(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&(m(e,!1),e.strm.avail_out),1)})),new D(4,4,8,4,y),new D(4,5,16,8,y),new D(4,6,32,32,y),new D(4,4,16,16,b),new D(8,16,32,32,b),new D(8,16,128,128,b),new D(8,32,128,256,b),new D(32,128,258,1024,b),new D(32,258,258,4096,b)],t.deflateInit=function(e,t){return R(e,t,8,15,8,0)},t.deflateInit2=R,t.deflateReset=v,t.deflateResetKeep=k,t.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?c:(e.state.gzhead=t,0):c},t.deflate=function(e,t){var r,i,s,o;if(!e||!e.state||t>5||t<0)return e?h(e,c):c;if(i=e.state,!e.output||!e.input&&0!==e.avail_in||i.status===g&&4!==t)return h(e,0===e.avail_out?-5:c);if(i.strm=e,r=i.last_flush,i.last_flush=t,42===i.status)if(2===i.wrap)e.adler=0,B(i,31),B(i,139),B(i,8),i.gzhead?(B(i,(i.gzhead.text?1:0)+(i.gzhead.hcrc?2:0)+(i.gzhead.extra?4:0)+(i.gzhead.name?8:0)+(i.gzhead.comment?16:0)),B(i,255&i.gzhead.time),B(i,i.gzhead.time>>8&255),B(i,i.gzhead.time>>16&255),B(i,i.gzhead.time>>24&255),B(i,9===i.level?2:i.strategy>=2||i.level<2?4:0),B(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(B(i,255&i.gzhead.extra.length),B(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(e.adler=A(e.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69):(B(i,0),B(i,0),B(i,0),B(i,0),B(i,0),B(i,9===i.level?2:i.strategy>=2||i.level<2?4:0),B(i,3),i.status=u);else {var l=8+(i.w_bits-8<<4)<<8;l|=(i.strategy>=2||i.level<2?0:i.level<6?1:6===i.level?2:3)<<6,0!==i.strstart&&(l|=32),l+=31-l%31,i.status=u,p(i,l),0!==i.strstart&&(p(i,e.adler>>>16),p(i,65535&e.adler)),e.adler=1;}if(69===i.status)if(i.gzhead.extra){for(s=i.pending;i.gzindex<(65535&i.gzhead.extra.length)&&(i.pending!==i.pending_buf_size||(i.gzhead.hcrc&&i.pending>s&&(e.adler=A(e.adler,i.pending_buf,i.pending-s,s)),_(e),s=i.pending,i.pending!==i.pending_buf_size));)B(i,255&i.gzhead.extra[i.gzindex]),i.gzindex++;i.gzhead.hcrc&&i.pending>s&&(e.adler=A(e.adler,i.pending_buf,i.pending-s,s)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=73);}else i.status=73;if(73===i.status)if(i.gzhead.name){s=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>s&&(e.adler=A(e.adler,i.pending_buf,i.pending-s,s)),_(e),s=i.pending,i.pending===i.pending_buf_size)){o=1;break}o=i.gzindex<i.gzhead.name.length?255&i.gzhead.name.charCodeAt(i.gzindex++):0,B(i,o);}while(0!==o);i.gzhead.hcrc&&i.pending>s&&(e.adler=A(e.adler,i.pending_buf,i.pending-s,s)),0===o&&(i.gzindex=0,i.status=91);}else i.status=91;if(91===i.status)if(i.gzhead.comment){s=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>s&&(e.adler=A(e.adler,i.pending_buf,i.pending-s,s)),_(e),s=i.pending,i.pending===i.pending_buf_size)){o=1;break}o=i.gzindex<i.gzhead.comment.length?255&i.gzhead.comment.charCodeAt(i.gzindex++):0,B(i,o);}while(0!==o);i.gzhead.hcrc&&i.pending>s&&(e.adler=A(e.adler,i.pending_buf,i.pending-s,s)),0===o&&(i.status=f);}else i.status=f;if(i.status===f&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&_(e),i.pending+2<=i.pending_buf_size&&(B(i,255&e.adler),B(i,e.adler>>8&255),e.adler=0,i.status=u)):i.status=u),0!==i.pending){if(_(e),0===e.avail_out)return i.last_flush=-1,0}else if(0===e.avail_in&&C(t)<=C(r)&&4!==t)return h(e,-5);if(i.status===g&&0!==e.avail_in)return h(e,-5);if(0!==e.avail_in||0!==i.lookahead||0!==t&&i.status!==g){var w=2===i.strategy?function(e,t){for(var r;;){if(0===e.lookahead&&(Q(e),0===e.lookahead)){if(0===t)return 1;break}if(e.match_length=0,r=a._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(m(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(m(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(m(e,!1),0===e.strm.avail_out)?1:2}(i,t):3===i.strategy?function(e,t){for(var r,n,i,s,A=e.window;;){if(e.lookahead<=d){if(Q(e),e.lookahead<=d&&0===t)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(n=A[i=e.strstart-1])===A[++i]&&n===A[++i]&&n===A[++i]){s=e.strstart+d;do{}while(n===A[++i]&&n===A[++i]&&n===A[++i]&&n===A[++i]&&n===A[++i]&&n===A[++i]&&n===A[++i]&&n===A[++i]&&i<s);e.match_length=d-(s-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead);}if(e.match_length>=3?(r=a._tr_tally(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=a._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(m(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(m(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(m(e,!1),0===e.strm.avail_out)?1:2}(i,t):n[i.level].func(i,t);if(3!==w&&4!==w||(i.status=g),1===w||3===w)return 0===e.avail_out&&(i.last_flush=-1),0;if(2===w&&(1===t?a._tr_align(i):5!==t&&(a._tr_stored_block(i,0,0,!1),3===t&&(I(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),_(e),0===e.avail_out))return i.last_flush=-1,0}return 4!==t?0:i.wrap<=0?1:(2===i.wrap?(B(i,255&e.adler),B(i,e.adler>>8&255),B(i,e.adler>>16&255),B(i,e.adler>>24&255),B(i,255&e.total_in),B(i,e.total_in>>8&255),B(i,e.total_in>>16&255),B(i,e.total_in>>24&255)):(p(i,e.adler>>>16),p(i,65535&e.adler)),_(e),i.wrap>0&&(i.wrap=-i.wrap),0!==i.pending?0:1)},t.deflateEnd=function(e){var t;return e&&e.state?42!==(t=e.state.status)&&69!==t&&73!==t&&91!==t&&t!==f&&t!==u&&t!==g?h(e,c):(e.state=null,t===u?h(e,-3):0):c},t.deflateSetDictionary=function(e,t){var r,n,a,A,o,d,l,f,u=t.length;if(!e||!e.state)return c;if(2===(A=(r=e.state).wrap)||1===A&&42!==r.status||r.lookahead)return c;for(1===A&&(e.adler=s(e.adler,t,u,0)),r.wrap=0,u>=r.w_size&&(0===A&&(I(r.head),r.strstart=0,r.block_start=0,r.insert=0),f=new i.Buf8(r.w_size),i.arraySet(f,t,u-r.w_size,r.w_size,0),t=f,u=r.w_size),o=e.avail_in,d=e.next_in,l=e.input,e.avail_in=u,e.next_in=0,e.input=t,Q(r);r.lookahead>=3;){n=r.strstart,a=r.lookahead-2;do{r.ins_h=(r.ins_h<<r.hash_shift^r.window[n+3-1])&r.hash_mask,r.prev[n&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=n,n++;}while(--a);r.strstart=n,r.lookahead=2,Q(r);}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=2,r.match_available=0,e.next_in=d,e.input=l,e.avail_in=o,r.wrap=A,0},t.deflateInfo="pako deflate (from Nodeca project)";},8485:(e,t)=>{function r(e){return ("object"==typeof e&&null!==e&&"message"in e?e.message:`${e}`).replace(/\.$/,"")}Object.defineProperty(t,"__esModule",{value:!0}),t.default=class{constructor(e,t={}){this.baseOverrides={},this.url=e;const r=t.fetch||globalThis.fetch.bind(globalThis);t.overrides&&(this.baseOverrides=t.overrides),this.fetchImplementation=r;}async fetch(e,t){let n;try{n=await this.fetchImplementation(e,t);}catch(i){if(!`${i}`.includes("Failed to fetch"))throw new Error(`${r(i)} fetching ${e}`,{cause:i});console.warn(`generic-filehandle: refetching ${e} to attempt to work around chrome CORS header caching bug`);try{n=await this.fetchImplementation(e,{...t,cache:"reload"});}catch(t){throw new Error(`${r(t)} fetching ${e}`,{cause:t})}}return n}async read(e,t,r={}){const{headers:n={},signal:i,overrides:a={}}=r;e<1/0?n.range=`bytes=${t}-${t+e}`:e===1/0&&0!==t&&(n.range=`bytes=${t}-`);const s=await this.fetch(this.url,{...this.baseOverrides,...a,headers:{...n,...a.headers,...this.baseOverrides.headers},method:"GET",redirect:"follow",mode:"cors",signal:i});if(!s.ok)throw new Error(`HTTP ${s.status} fetching ${this.url}`);if(200===s.status&&0===t||206===s.status){const t=await s.arrayBuffer(),r=s.headers.get("content-range"),n=/\/(\d+)$/.exec(r||"");return n?.[1]&&(this._stat={size:parseInt(n[1],10)}),new Uint8Array(t.slice(0,e))}throw 200===s.status?new Error(`${this.url} fetch returned status 200, expected 206`):new Error(`HTTP ${s.status} fetching ${this.url}`)}async readFile(e={}){let t,r;"string"==typeof e?(t=e,r={}):(t=e.encoding,r=e,delete r.encoding);const{headers:n={},signal:i,overrides:a={}}=r,s=await this.fetch(this.url,{headers:n,method:"GET",redirect:"follow",mode:"cors",signal:i,...this.baseOverrides,...a});if(200!==s.status)throw new Error(`HTTP ${s.status} fetching ${this.url}`);if("utf8"===t)return s.text();if(t)throw new Error(`unsupported encoding: ${t}`);return new Uint8Array(await s.arrayBuffer())}async stat(){if(!this._stat&&(await this.read(10,0),!this._stat))throw new Error(`unable to determine size of file at ${this.url}`);return this._stat}async close(){}};},8594:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.decode=function(e){const t=new i.default(e),r=t.ReadByte(),n=(t.ReadUint32(),t.ReadUint32());return 0==r?function(e,t){const r=new Array(256),n=new Array(256);d(e,r,n);const i=A(n),s=new Array(4);for(var l=0;l<4;l++)s[l]=e.ReadUint32();const f=new Uint8Array(t);for(l=0;l<t;l++){const t=l%4,A=i[a(s[t])];f[l]=A,s[t]=o(s[t],n[A],r[A]),s[t]=c(e,s[t]);}return f}(t,n):function(e,t){const r=new Array(256),n=new Array(256);!function(e,t,r){for(let e=0;e<256;e++){t[e]=new Array(256),r[e]=new Array(256);for(let r=0;r<256;r++)t[e][r]=0;}let n=e.ReadByte(),i=n,a=0;do{d(e,t[n],r[n]),a>0?(a--,n++):(n=e.ReadByte(),n==i+1&&(a=e.ReadByte())),i=n;}while(0!=n)}(e,r,n);const i=new Array(256);for(var l=0;l<256;l++)i[l]=A(n[l]);const f=new Array(4),u=new Array(4);for(var g=0;g<4;g++)f[g]=e.ReadUint32(),u[g]=0;const h=new Uint8Array(t),C=Math.floor(t/4);for(l=0;l<C;l++)for(g=0;g<4;g++){var I=a(f[g]),_=i[u[g]][I];h[l+g*C]=_,f[g]=o(f[g],n[u[g]][_],r[u[g]][_]),f[g]=c(e,f[g]),u[g]=_;}for(l*=4;l<t;)I=a(f[3]),_=s(n[u[3]],I),h[l++]=_,f[3]=o(f[3],n[u[3]][_],r[u[3]][_]),f[3]=c(e,f[3]),u[3]=_;return h}(t,n)};const i=n(r(3088));function a(e){return 4095&e}function s(e,t){let r=0;for(;t>=e[r+1];)r++;return r}function A(e){const t=new Array(4096);let r=0;for(let n=0;n<4096;n++){for(;n>=e[r+1];)r++;t[n]=r;}return t}function o(e,t,r){return r*(e>>12)+(4095&e)-t}function c(e,t){for(;t<1<<23;)t=(t<<8)+e.ReadByte();return t}function d(e,t,r){for(var n=0;n<256;n++)t[n]=0;let i=e.ReadByte(),a=i,s=0;do{const r=e.ReadITF8();t[i]=r,s>0?(s--,i++):(i=e.ReadByte(),i==a+1&&(s=e.ReadByte())),a=i;}while(0!=i);for(r[0]=0,n=0;n<=255;n++)r[n+1]=r[n]+t[n];}},8700:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});const n=r(6272),i=r(1609),a={BF:"int",CF:"int",RI:"int",RL:"int",AP:"int",RG:"int",MF:"int",NS:"int",NP:"int",TS:"int",NF:"int",TC:"byte",TN:"int",FN:"int",FC:"byte",FP:"int",BS:"byte",IN:"byteArray",SC:"byteArray",DL:"int",BA:"byte",BB:"byteArray",RS:"int",PD:"int",HC:"int",MQ:"int",RN:"byteArray",QS:"byte",QQ:"byteArray",TL:"int"};t.default=class{constructor(e){this.dataSeriesCodecCache={},this.tagCodecCache={},this.tagEncoding={},this.readNamesIncluded=e.preservation.RN,this.APdelta=e.preservation.AP,this.referenceRequired=!!e.preservation.RR,this.tagIdsDictionary=e.preservation.TD,this.substitutionMatrix=function(e){const t=new Array(5);for(let e=0;e<5;e+=1)t[e]=new Array(4);return t[0][e[0]>>6&3]="C",t[0][e[0]>>4&3]="G",t[0][e[0]>>2&3]="T",t[0][3&e[0]]="N",t[1][e[1]>>6&3]="A",t[1][e[1]>>4&3]="G",t[1][e[1]>>2&3]="T",t[1][3&e[1]]="N",t[2][e[2]>>6&3]="A",t[2][e[2]>>4&3]="C",t[2][e[2]>>2&3]="T",t[2][3&e[2]]="N",t[3][e[3]>>6&3]="A",t[3][e[3]>>4&3]="C",t[3][e[3]>>2&3]="G",t[3][3&e[3]]="N",t[4][e[4]>>6&3]="A",t[4][e[4]>>4&3]="C",t[4][e[4]>>2&3]="G",t[4][3&e[4]]="T",t}(e.preservation.SM),this.dataSeriesEncoding=e.dataSeriesEncoding,this.tagEncoding=e.tagEncoding;}getCodecForTag(e){const t=this.tagCodecCache[e];if(t)return t;{const t=this.tagEncoding[e];if(!t)throw new Error("Error, no tag encoding");const r=(0, i.instantiateCodec)(t,"byteArray");return this.tagCodecCache[e]=r,r}}getTagNames(e){return this.tagIdsDictionary[e]}getCodecForDataSeries(e){let t=this.dataSeriesCodecCache[e];if(void 0===t){const r=this.dataSeriesEncoding[e];if(r){const s=a[e];if(!s)throw new n.CramMalformedError(`data series name ${e} not defined in file compression header`);t=(0, i.instantiateCodec)(r,s),this.dataSeriesCodecCache[e]=t;}}return t}toJSON(){const e={};return Object.keys(this).forEach((t=>{t.endsWith("Cache")||(e[t]=this[t]);})),e}};},8751:function(e,t,r){var n,i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i);}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),s=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),s=0;s<r.length;s++)"default"!==r[s]&&i(t,e,r[s]);return a(t,e),t}),A=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=A(r(86)),c=A(r(7392)),d=r(1307),l=r(6272),f=s(r(4562)),u=r(6727),g=A(r(2670)),h=r(5011),C=r(870),I=r(2169),_=A(r(2845)),m=r(7580),B=r(2549);class p{constructor(e){if(this.file=(0, u.open)(e.url,e.path,e.filehandle),this.validateChecksums=!0,this.fetchReferenceSequenceCallback=e.seqFetch,this.options={checkSequenceMD5:e.checkSequenceMD5,cacheSize:e.cacheSize??2e4},this.featureCache=new c.default({maxSize:this.options.cacheSize}),function(){const e=new Uint32Array([287454020]),t=new Uint8Array(e.buffer);return 68===t[0]?0:17===t[0]?1:2}()>0)throw new Error("Detected big-endian machine, may be unable to run")}read(e,t){return this.file.read(e,t)}async getDefinition(){const{maxLength:e,parser:t}=(0, m.cramFileDefinition)(),r=t(await this.file.read(e,0)).value;if(2!==r.majorVersion&&3!==r.majorVersion)throw new l.CramUnimplementedError(`CRAM version ${r.majorVersion} not supported`);return r}async getSamHeader(){const e=await this.getContainerById(0);if(!e)throw new l.CramMalformedError("file contains no containers");const t=(await e.getFirstBlock()).content,r=new DataView(t.buffer).getInt32(0,!0),n=new TextDecoder("utf8").decode(t.subarray(4,4+r));return this.header=n,(0, h.parseHeaderText)(n)}async getHeaderText(){return await this.getSamHeader(),this.header}async getContainerById(e){const{majorVersion:t}=await this.getDefinition();let r,n=(0, m.getSectionParsers)(t).cramFileDefinition.maxLength;for(let t=0;t<=e;t++){r=this.getContainerAtPosition(n);const e=await r.getHeader();if(0===t){n=e._endPosition;for(let t=0;t<e.numBlocks;t++)n=(await this.readBlock(n))._endPosition;}else n+=e._size+e.length;}return r}async checkCrc32(e,t,r,n){const i=await this.file.read(t,e),a=(0, o.default)(i)>>>0;if(a!==r)throw new l.CramMalformedError(`crc mismatch in ${n}: recorded CRC32 = ${r}, but calculated CRC32 = ${a}`)}async containerCount(){const{majorVersion:e}=await this.getDefinition();let t=0,r=(0, m.getSectionParsers)(e).cramFileDefinition.maxLength;try{for(;;){const e=await this.getContainerAtPosition(r).getHeader();if(0===t){r=e._endPosition;for(let t=0;t<e.numBlocks;t++)r=(await this.readBlock(r))._endPosition;}else r+=e._size+e.length;t+=1;}}catch(e){t--;}return t}getContainerAtPosition(e){return new _.default(this,e)}async readBlockHeader(e){const{majorVersion:t}=await this.getDefinition(),r=(0, m.getSectionParsers)(t),{cramBlockHeader:n}=r,i=await this.file.read(n.maxLength,e);return (0, B.parseItem)(i,n.parser,0,e)}async _parseSection(e,t,r=e.maxLength,n){const i=n??await this.file.read(r,t),a=(0, B.parseItem)(i,e.parser,0,t);if(a._size!==r)throw new l.CramMalformedError(`section read error: requested size ${r} does not equal parsed size ${a._size}`);return a}async _uncompressPre(e,t,r){if("gzip"===e)return (0, I.unzip)(t);if("bzip2"===e)return (0, C.decode)(t);if("lzma"===e){const e=new Response(new d.XzReadableStream((n=t,new ReadableStream({start(e){e.enqueue(n),e.close();}}))));return new Uint8Array(await e.arrayBuffer())}if("rans"===e){const e=new Uint8Array(r);return (0, g.default)(t,e),e}if("rans4x16"===e)return f.r4x16_uncompress(t);if("arith"===e)return f.arith_uncompress(t);if("fqzcomp"===e)return f.fqzcomp_uncompress(t);if("tok3"===e)return f.tok3_uncompress(t);throw new l.CramUnimplementedError(`${e} decompression not yet implemented`);var n;}async _uncompress(e,t,r){const n=await this._uncompressPre(e,t,r);if(n.length!==r){const e=new Uint8Array(r);return e.set(n,0),e}return n}async readBlock(e){const{majorVersion:t}=await this.getDefinition(),r=(0, m.getSectionParsers)(t),n=await this.readBlockHeader(e),i=n._endPosition,a=await this.file.read(n.compressedSize,i),s="raw"!==n.compressionMethod?await this._uncompress(n.compressionMethod,a,n.uncompressedSize):a,A={...n,_endPosition:i,contentPosition:i,content:s};if(t>=3){const t=await this._parseSection(r.cramBlockCrc32,i+n.compressedSize);A.crc32=t.crc32,this.validateChecksums&&await this.checkCrc32(e,n._size+n.compressedSize,t.crc32,"block data"),A._endPosition=t._endPosition,A._size=A.compressedSize+r.cramBlockCrc32.maxLength;}else A._endPosition=i+A.compressedSize,A._size=A.compressedSize;return A}}t.default=p,"getDefinition getSectionParsers getSamHeader".split(" ").forEach((e=>{(0, B.tinyMemoize)(p,e);}));},8761:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});const r=new Uint32Array([0,79764919,159529838,222504665,319059676,398814059,445009330,507990021,638119352,583659535,797628118,726387553,890018660,835552979,1015980042,944750013,1276238704,1221641927,1167319070,1095957929,1595256236,1540665371,1452775106,1381403509,1780037320,1859660671,1671105958,1733955601,2031960084,2111593891,1889500026,1952343757,2552477408,2632100695,2443283854,2506133561,2334638140,2414271883,2191915858,2254759653,3190512472,3135915759,3081330742,3009969537,2905550212,2850959411,2762807018,2691435357,3560074640,3505614887,3719321342,3648080713,3342211916,3287746299,3467911202,3396681109,4063920168,4143685023,4223187782,4286162673,3779000052,3858754371,3904687514,3967668269,881225847,809987520,1023691545,969234094,662832811,591600412,771767749,717299826,311336399,374308984,453813921,533576470,25881363,88864420,134795389,214552010,2023205639,2086057648,1897238633,1976864222,1804852699,1867694188,1645340341,1724971778,1587496639,1516133128,1461550545,1406951526,1302016099,1230646740,1142491917,1087903418,2896545431,2825181984,2770861561,2716262478,3215044683,3143675388,3055782693,3001194130,2326604591,2389456536,2200899649,2280525302,2578013683,2640855108,2418763421,2498394922,3769900519,3832873040,3912640137,3992402750,4088425275,4151408268,4197601365,4277358050,3334271071,3263032808,3476998961,3422541446,3585640067,3514407732,3694837229,3640369242,1762451694,1842216281,1619975040,1682949687,2047383090,2127137669,1938468188,2001449195,1325665622,1271206113,1183200824,1111960463,1543535498,1489069629,1434599652,1363369299,622672798,568075817,748617968,677256519,907627842,853037301,1067152940,995781531,51762726,131386257,177728840,240578815,269590778,349224269,429104020,491947555,4046411278,4126034873,4172115296,4234965207,3794477266,3874110821,3953728444,4016571915,3609705398,3555108353,3735388376,3664026991,3290680682,3236090077,3449943556,3378572211,3174993278,3120533705,3032266256,2961025959,2923101090,2868635157,2813903052,2742672763,2604032198,2683796849,2461293480,2524268063,2284983834,2364738477,2175806836,2238787779,1569362073,1498123566,1409854455,1355396672,1317987909,1246755826,1192025387,1137557660,2072149281,2135122070,1912620623,1992383480,1753615357,1816598090,1627664531,1707420964,295390185,358241886,404320391,483945776,43990325,106832002,186451547,266083308,932423249,861060070,1041341759,986742920,613929101,542559546,756411363,701822548,3316196985,3244833742,3425377559,3370778784,3601682597,3530312978,3744426955,3689838204,3819031489,3881883254,3928223919,4007849240,4037393693,4100235434,4180117107,4259748804,2310601993,2373574846,2151335527,2231098320,2596047829,2659030626,2470359227,2550115596,2947551409,2876312838,2788305887,2733848168,3165939309,3094707162,3040238851,2985771188]);t.default=class{constructor(){this.crc=4294967295;}getCRC(){return ~this.crc>>>0}updateCRC(e){this.crc=this.crc<<8^r[255&(this.crc>>>24^e)];}updateCRCRun(e,t){for(;t-- >0;)this.crc=this.crc<<8^r[255&(this.crc>>>24^e)];}};},8930:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=n(r(4141)),a=r(6272),s=r(2549),A=r(6761);class o extends i.default{constructor(e,t){if(super(e,t),"int"===this.dataType)this._decodeData=this._decodeInt;else {if("byte"!==this.dataType)throw new a.CramUnimplementedError(`${this.dataType} decoding not yet implemented by EXTERNAL codec`);this._decodeData=this._decodeByte;}}decode(e,t,r,n){const{blockContentId:i}=this.parameters,a=r[i];return a?this._decodeData(a,n.externalBlocks.getCursor(i)):void 0}_decodeInt(e,t){const[r,n]=(0, s.parseItf8)(e.content,t.bytePosition);return t.bytePosition=t.bytePosition+n,r}_decodeByte(e,t){if(t.bytePosition>=e.content.length)throw new A.CramBufferOverrunError("attempted to read beyond end of block. this file seems truncated.");return e.content[t.bytePosition++]}}t.default=o;},9301:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});const n=r(6272),i=r(7151);class a{constructor(){this.F=void 0,this.C=void 0;}}function s(e,t,r,n){return r*(e>>n)+(e&(1<<n)-1)-t}t.default={FC:a,AriDecoder:class{constructor(){this.fc=new Array(256);for(let e=0;e<this.fc.length;e+=1)this.fc[e]=new a;this.R=null;}},DecodingSymbol:class{constructor(){this.start=void 0,this.freq=void 0;}},symbolInit:function(e,t,r){if(!(t<=65536))throw new n.CramMalformedError("assertion failed: start <= 1<<16");if(!(r<=65536-t))throw new n.CramMalformedError("assertion failed: freq <= 1<<16");e.start=t,e.freq=r;},advanceStep:s,advanceSymbolStep:function(e,t,r){return s(e,t.start,t.freq,r)},get:function(e,t){return e&(1<<t)-1},advanceSymbol:function(e,t,r,n){return function(e,t,r,n,a){if((e=n*(e>>a)+(e&(1<<a)-1)-r)<i.RANS_BYTE_L)do{e=e<<8|255&t.get();}while(e<i.RANS_BYTE_L);return e}(e,t,r.start,r.freq,n)},renormalize:function(e,t){if(e<i.RANS_BYTE_L)do{e=e<<8|255&t.get();}while(e<i.RANS_BYTE_L);return e}};},9313:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.decode=function(e){return d(new i.default(e),0)};const i=n(r(3088));function a(e,t){return e&(1<<t)-1}function s(e,t){let r=0;for(;t>=e[r+1];)r++;return r}function A(e,t){const r=1<<t,n=new Array(r);let i=0;for(let t=0;t<r;t++){for(;t>=e[i+1];)i++;n[t]=i;}return n}function o(e,t,r,n){return r*(e>>n)+(e&(1<<n)-1)-t}function c(e,t){return t<32768&&(t=(t<<16)+e.ReadUint16()),t}function d(e,t){const r=e.ReadByte(),n=1&r,g=8&r,h=32&r,C=64&r,I=128&r,_=4&r?32:4;if(16&r||(t=e.ReadUint7()),g)return function(e,t){const r=e.ReadByte(),n=new Array(r),i=new Array(r);for(var a=0;a<r;a++)n[a]=e.ReadUint7();const s=new Array(r);for(a=0;a<r;a++)i[a]=Math.floor(t/r)+(t%r>a),s[a]=d(e,i[a]);const A=new Uint8Array(t);for(a=0;a<r;a++)for(let e=0;e<i[a];e++)A[e*r+a]=s[a][e];return A}(e,t);if(I)var m=t,[B,p,t]=function(e){const t=e.ReadByte(),r=new Array(t);for(let n=0;n<t;n++)r[n]=e.ReadByte();return [r,t,e.ReadUint7()]}(e);if(C)var w=t,[E,Q,t]=function(e,t){const r=e.ReadUint7(),n=e.ReadUint7();if(1&r)var a=e.ReadData((r-1)/2);else {const n=e.ReadUint7();a=e.ReadData(n),a=f(new i.default(a),r/2,t);}a=new i.default(a);const s=new Array(256);let A=a.ReadByte();0==A&&(A=256);for(let e=0;e<A;e++)s[a.ReadByte()]=1;return [s,a,n]}(e,_);if(h)var y=e.ReadData(t);else y=0==n?f(e,t,_):function(e,t,r){const n=(g=e.ReadByte())>>4;var d=e;if(1&g){const t=e.ReadUint7(),r=e.ReadUint7();var g=new i.default(e.ReadData(r));d=new i.default(f(g,t,4));}const h=new Array(256),C=new Array(256);!function(e,t,r,n){for(var i=0;i<256;i++){t[i]=new Array(256),r[i]=new Array(256);for(var a=0;a<256;a++)t[i][a]=0;}const s=l(e);for(i=0;i<256;i++){if(!s[i])continue;let A=0;for(a=0;a<256;a++)s[a]&&(A>0?A--:(t[i][a]=e.ReadUint7(),0==t[i][a]&&(A=e.ReadByte())));for(u(t[i],n),r[i][0]=0,a=0;a<256;a++)r[i][a+1]=r[i][a]+t[i][a];}}(d,h,C,n);const I=new Array(256);for(var _=0;_<256;_++)I[_]=A(C[_],n);const m=new Array(r),B=new Array(r);for(var p=0;p<r;p++)m[p]=e.ReadUint32(),B[p]=0;const w=new Uint8Array(t),E=Math.floor(t/r);for(_=0;_<E;_++)for(p=0;p<r;p++){var Q=a(m[p],n),y=I[B[p]][Q];w[_+p*E]=y,m[p]=o(m[p],C[B[p]][y],h[B[p]][y],n),m[p]=c(e,m[p]),B[p]=y;}for(_*=r;_<t;)Q=a(m[r-1],n),y=s(C[B[r-1]],Q),w[_++]=y,m[r-1]=o(m[r-1],C[B[r-1]][y],h[B[r-1]][y],n),m[r-1]=c(e,m[r-1]),B[r-1]=y;return w}(e,t,_);return C&&(y=function(e,t,r,n){new i.default(e);const a=new Uint8Array(n);let s=0;for(let i=0;s<n;i++){const n=e[i];if(t[n]){const e=r.ReadUint7();for(let t=0;t<=e;t++)a[s++]=n;}else a[s++]=n;}return a}(y,E,Q,w)),I&&(y=function(e,t,r,n){const i=new Uint8Array(n);let a=0;if(r<=1)for(var s=0;s<n;s++)i[s]=t[0];else if(r<=2)for(s=0;s<n;s++){if(s%8==0)var A=e[a++];i[s]=t[1&A],A>>=1;}else if(r<=4)for(s=0;s<n;s++)s%4==0&&(A=e[a++]),i[s]=t[3&A],A>>=2;else if(r<=16)for(s=0;s<n;s++)s%2==0&&(A=e[a++]),i[s]=t[15&A],A>>=4;return i}(y,B,p,m)),y}function l(e){const t=new Array(256);for(let e=0;e<256;e++)t[e]=0;let r=0,n=e.ReadByte(),i=n;do{t[n]=1,r>0?(r--,n++):(n=e.ReadByte(),n==i+1&&(r=e.ReadByte())),i=n;}while(0!=n);return t}function f(e,t,r){const n=new Array(256),i=new Array(256);!function(e,t,r){for(var n=0;n<256;n++)t[n]=0;const i=l(e);for(n=0;n<256;n++)i[n]>0&&(t[n]=e.ReadUint7());for(u(t,12),r[0]=0,n=0;n<=255;n++)r[n+1]=r[n]+t[n];}(e,n,i);const s=A(i,12),d=new Array(r);for(var f=0;f<r;f++)d[f]=e.ReadUint32();const g=new Uint8Array(t);for(f=0;f<t;f++){const t=f&r-1,A=s[a(d[t],12)];g[f]=A,d[t]=o(d[t],i[A],n[A],12),d[t]=c(e,d[t]);}return g}function u(e,t){let r=0;for(var n=0;n<256;n++)r+=e[n];if(0==r||r==1<<t)return;let i=0;for(;r<1<<t;)r*=2,i++;for(n=0;n<256;n++)e[n]<<=i;}},9505:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=r(870),a=n(r(4652)),s=n(r(2324)),A=n(r(3088));t.default=class{decode(e){return this.stream=new A.default(e),this.decodeStream(this.stream)}decodeStream(e,t=0){const r=this.stream.ReadByte();16&r||(t=this.stream.ReadUint7());let n=t;const i=1&r;if(8&r)return this.decodeStripe(this.stream,t);var a;if(128&r&&([a,n]=this.decodePackMeta(this.stream)),32&r)var s=this.decodeCat(this.stream,n);else s=4&r?this.decodeExt(this.stream,n):64&r?i?this.decodeRLE1(this.stream,n):this.decodeRLE0(this.stream,n):i?this.decode1(this.stream,n):this.decode0(this.stream,n);return 128&r&&(s=this.decodePack(s,a,t)),s}decode0(e,t){const r=new Uint8Array(t);let n=e.ReadByte();0==n&&(n=256);const i=new s.default(n),A=new a.default(e);A.RangeStartDecode(e);for(let n=0;n<t;n++)r[n]=i.ModelDecode(e,A);return r}decode1(e,t){const r=new Uint8Array(t);let n=e.ReadByte();0==n&&(n=256);const i=new Array(n);for(var A=0;A<n;A++)i[A]=new s.default(n);const o=new a.default(e);o.RangeStartDecode(e);let c=0;for(A=0;A<t;A++)r[A]=i[c].ModelDecode(e,o),c=r[A];return r}decodeExt(e,t){return (0, i.decode)(e.buf.slice(e.pos))}decodeRLE0(e,t){const r=new Uint8Array(t);let n=e.ReadByte();0==n&&(n=256);const i=new s.default(n),A=new Array(258);for(var o=0;o<=257;o++)A[o]=new s.default(4);const c=new a.default(e);for(c.RangeStartDecode(e),o=0;o<t;){r[o]=i.ModelDecode(e,c);let t=A[r[o]].ModelDecode(e,c),n=t,a=256;for(;3==t;)t=A[a].ModelDecode(e,c),a=257,n+=t;for(let e=1;e<=n;e++)r[o+e]=r[o];o+=n+1;}return r}decodeRLE1(e,t){const r=new Uint8Array(t);let n=e.ReadByte();0==n&&(n=256);const i=new Array(n);for(var A=0;A<n;A++)i[A]=new s.default(n);const o=new Array(258);for(A=0;A<=257;A++)o[A]=new s.default(4);const c=new a.default(e);c.RangeStartDecode(e);let d=0;for(A=0;A<t;){r[A]=i[d].ModelDecode(e,c),d=r[A];let t=o[r[A]].ModelDecode(e,c),n=t,a=256;for(;3==t;)t=o[a].ModelDecode(e,c),a=257,n+=t;for(let e=1;e<=n;e++)r[A+e]=r[A];A+=n+1;}return r}decodePackMeta(e){this.nsym=e.ReadByte();const t=new Array(this.nsym);for(let r=0;r<this.nsym;r++)t[r]=e.ReadByte();return [t,e.ReadUint7()]}decodePack(e,t,r){const n=new Uint8Array(r);if(this.nsym<=1)for(var i=0;i<r;i++)n[i]=t[0];else if(this.nsym<=2){i=0;for(var a=0;i<r;i++){if(i%8==0)var s=e[a++];n[i]=t[1&s],s>>=1;}}else if(this.nsym<=4)for(i=0,a=0;i<r;i++)i%4==0&&(s=e[a++]),n[i]=t[3&s],s>>=2;else {if(!(this.nsym<=16))return e;for(i=0,a=0;i<r;i++)i%2==0&&(s=e[a++]),n[i]=t[15&s],s>>=4;}return n}packMeta(e){const t=new A.default("",0,1024),r=new Array(256);for(var n=0;n<e.length;n++)r[e[n]]=1;var i=0;for(n=0;n<256;n++)r[n]&&(r[n]=++i);for(t.WriteByte(i),n=0;n<256;n++)r[n]&&(t.WriteByte(n),r[n]--);return [t,r,i]}decodeStripe(e,t){const r=e.ReadByte(),n=new Array(r),i=new Array(r);for(var a=0;a<r;a++)n[a]=e.ReadUint7();const s=new Array(r);for(a=0;a<r;a++)i[a]=Math.floor(t/r)+(t%r>a),s[a]=this.decodeStream(e,i[a]);const A=new Uint8Array(t);for(a=0;a<r;a++)for(let e=0;e<i[a];e++)A[e*r+a]=s[a][e];return A}decodeCat(e,t){const r=new Uint8Array(t);for(let n=0;n<t;n++)r[n]=e.ReadByte();return r}};},9681:e=>{e.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};},9685:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r,o,c,d,l,f,u){let g=t("BF");const h=t("CF");if(!(0, a.isMappedSliceHeader)(o.parsedContent))throw new Error("slice header not mapped");const C=f>1&&-2===o.parsedContent.refSeqId?t("RI"):o.parsedContent.refSeqId,I=t("RL");let _=t("AP");r.APdelta&&(_+=l.lastAlignmentStart),l.lastAlignmentStart=_;const m=t("RG");let B,p,w,E;if(r.readNamesIncluded&&(B=s(t("RN"))),i.CramFlagsDecoder.isDetached(h)){const e=t("MF");let n;r.readNamesIncluded||(n=s(t("RN")),B=n);const a=t("NS"),A=t("NP");(e||a>-1)&&(p={mateFlags:e,mateSequenceId:a,mateAlignmentStart:A,mateReadName:n}),w=t("TS"),i.MateFlagsDecoder.isUnmapped(e)&&(g=i.BamFlagsDecoder.setMateUnmapped(g)),i.MateFlagsDecoder.isOnNegativeStrand(e)&&(g=i.BamFlagsDecoder.setMateReverseComplemented(g));}else i.CramFlagsDecoder.isWithMateDownstream(h)&&(E=t("NF")+u+1);const Q=t("TL");if(Q<0)throw new n.CramMalformedError("invalid TL index");const y={},b=r.getTagNames(Q),D=b.length;for(let t=0;t<D;t++){const n=b[t],i=n.slice(0,2),a=n.slice(2,3),s=r.getCodecForTag(n).decode(e,c,d,l);y[i]=void 0===s?void 0:"number"==typeof s?s:A(a,s);}let S,k,v,R,F;if(i.BamFlagsDecoder.isSegmentUnmapped(g))if(i.CramFlagsDecoder.isDecodeSequenceAsStar(h))F=null,R=null;else {const e=new Array(I);for(let r=0;r<e.length;r++)e[r]=t("BA");if(F=String.fromCharCode(...e),i.CramFlagsDecoder.isPreservingQualityScores(h)){R=new Array(I);for(let r=0;r<e.length;r++)R[r]=t("QS");}}else {const e=t("FN");if(e&&(S=function(e,t,r,i,a){let s=0,A=e-1;const o=new Array(t);function c([e,t]){const n=r(t);if("character"===e)return String.fromCharCode(n);if("string"===e){let e="";for(let t=0;t<n.byteLength;t++)e+=String.fromCharCode(n[t]);return e}return "numArray"===e?Array.from(n):n}for(let e=0;e<t;e++){const t=String.fromCharCode(r("FC")),i=r("FP"),d={B:["character","BA"],S:["string",a>1?"SC":"IN"],X:["number","BS"],D:["number","DL"],I:["string","IN"],i:["character","BA"],b:["string","BB"],q:["numArray","QQ"],Q:["number","QS"],H:["number","HC"],P:["number","PD"],N:["number","RS"]}[t];if(!d)throw new n.CramMalformedError(`invalid read feature code "${t}"`);let l=c(d);const f={B:["number","QS"]}[t];f&&(l=[l,c(f)]),s+=i;const u=s;A+=i;const g=A;"D"===t||"N"===t?A+=l:"I"===t||"S"===t?A-=l.length:"i"===t&&(A-=1),o[e]={code:t,pos:u,refPos:g,data:l};}return o}(_,e,t,0,f)),k=I,S)for(const{code:e,data:t}of S)"D"===e||"N"===e?k+=t:"I"===e||"S"===e?k-=t.length:"i"===e&&(k-=1);if(Number.isNaN(k)&&(console.warn(`${B||`${C}:${_}`} record has invalid read features`),k=I),v=t("MQ"),i.CramFlagsDecoder.isPreservingQualityScores(h)){R=new Array(I);for(let e=0;e<R.length;e++)R[e]=t("QS");}}return {readLength:I,sequenceId:C,cramFlags:h,flags:g,alignmentStart:_,readGroupId:m,readName:B,mateToUse:p,templateSize:w,mateRecordNumber:E,readFeatures:S,lengthOnRef:k,mappingQuality:v,qualityScores:R,readBases:F,tags:y}};const n=r(6272),i=r(7480),a=r(7580);function s(e){let t="";for(let r=0;r<e.length&&0!==e[r];r++)t+=String.fromCharCode(e[r]);return t}function A(e,t){if("Z"===e)return s(t);if("A"===e)return String.fromCharCode(t[0]);if("I"===e)return new Uint32Array(t.buffer)[0];if("i"===e)return new Int32Array(t.buffer)[0];if("s"===e)return new Int16Array(t.buffer)[0];if("S"===e)return new Uint16Array(t.buffer)[0];if("c"===e)return new Int8Array(t.buffer)[0];if("C"===e)return t[0];if("f"===e)return new Float32Array(t.buffer)[0];if("H"===e)return Number.parseInt(s(t).replace(/^0x/,""),16);if("B"===e)return function(e){const t=String.fromCharCode(e[0]),r=new DataView(e.buffer).getUint32(1,!0),n=new Array(r);if(e=e.slice(5),"c"===t){const t=new Int8Array(e.buffer);for(let e=0;e<r;e++)n[e]=t[e];}else if("C"===t){const t=new Uint8Array(e.buffer);for(let e=0;e<r;e++)n[e]=t[e];}else if("s"===t){const t=new Int16Array(e.buffer);for(let e=0;e<r;e++)n[e]=t[e];}else if("S"===t){const t=new Uint16Array(e.buffer);for(let e=0;e<r;e++)n[e]=t[e];}else if("i"===t){const t=new Int32Array(e.buffer);for(let e=0;e<r;e++)n[e]=t[e];}else if("I"===t){const t=new Uint32Array(e.buffer);for(let e=0;e<r;e++)n[e]=t[e];}else {if("f"!==t)throw new Error(`unknown type: ${t}`);{const t=new Float32Array(e.buffer);for(let e=0;e<r;e++)n[e]=t[e];}}return n}(t);throw new n.CramMalformedError(`Unrecognized tag type ${e}`)}},9805:(e,t)=>{var r="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;function n(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var r=t.shift();if(r){if("object"!=typeof r)throw new TypeError(r+"must be non-object");for(var i in r)n(r,i)&&(e[i]=r[i]);}}return e},t.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var i={arraySet:function(e,t,r,n,i){if(t.subarray&&e.subarray)e.set(t.subarray(r,r+n),i);else for(var a=0;a<n;a++)e[i+a]=t[r+a];},flattenChunks:function(e){var t,r,n,i,a,s;for(n=0,t=0,r=e.length;t<r;t++)n+=e[t].length;for(s=new Uint8Array(n),i=0,t=0,r=e.length;t<r;t++)a=e[t],s.set(a,i),i+=a.length;return s}},a={arraySet:function(e,t,r,n,i){for(var a=0;a<n;a++)e[i+a]=t[r+a];},flattenChunks:function(e){return [].concat.apply([],e)}};t.setTyped=function(e){e?(t.Buf8=Uint8Array,t.Buf16=Uint16Array,t.Buf32=Int32Array,t.assign(t,i)):(t.Buf8=Array,t.Buf16=Array,t.Buf32=Array,t.assign(t,a));},t.setTyped(r);},9846:()=>{}},t={},r=function r(n){var i=t[n];if(void 0!==i)return i.exports;var a=t[n]={exports:{}};return e[n].call(a.exports,a,a.exports,r),a.exports}(5159);return r})();
52556
+ let gmodCRAM;
52557
+ (()=>{var A={539(A){var t={utf8:{stringToBytes:function(A){return t.bin.stringToBytes(unescape(encodeURIComponent(A)))},bytesToString:function(A){return decodeURIComponent(escape(t.bin.bytesToString(A)))}},bin:{stringToBytes:function(A){for(var t=[],r=0;r<A.length;r++)t.push(255&A.charCodeAt(r));return t},bytesToString:function(A){for(var t=[],r=0;r<A.length;r++)t.push(String.fromCharCode(A[r]));return t.join("")}}};A.exports=t;},635(A){var t,r;t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r={rotl:function(A,t){return A<<t|A>>>32-t},rotr:function(A,t){return A<<32-t|A>>>t},endian:function(A){if(A.constructor==Number)return 16711935&r.rotl(A,8)|4278255360&r.rotl(A,24);for(var t=0;t<A.length;t++)A[t]=r.endian(A[t]);return A},randomBytes:function(A){for(var t=[];A>0;A--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(A){for(var t=[],r=0,e=0;r<A.length;r++,e+=8)t[e>>>5]|=A[r]<<24-e%32;return t},wordsToBytes:function(A){for(var t=[],r=0;r<32*A.length;r+=8)t.push(A[r>>>5]>>>24-r%32&255);return t},bytesToHex:function(A){for(var t=[],r=0;r<A.length;r++)t.push((A[r]>>>4).toString(16)),t.push((15&A[r]).toString(16));return t.join("")},hexToBytes:function(A){for(var t=[],r=0;r<A.length;r+=2)t.push(parseInt(A.substr(r,2),16));return t},bytesToBase64:function(A){for(var r=[],e=0;e<A.length;e+=3)for(var v=A[e]<<16|A[e+1]<<8|A[e+2],n=0;n<4;n++)8*e+6*n<=8*A.length?r.push(t.charAt(v>>>6*(3-n)&63)):r.push("=");return r.join("")},base64ToBytes:function(A){A=A.replace(/[^A-Z0-9+\/]/gi,"");for(var r=[],e=0,v=0;e<A.length;v=++e%4)0!=v&&r.push((t.indexOf(A.charAt(e-1))&Math.pow(2,-2*v+8)-1)<<2*v|t.indexOf(A.charAt(e))>>>6-2*v);return r}},A.exports=r;},445(A){function t(A){return !!A.constructor&&"function"==typeof A.constructor.isBuffer&&A.constructor.isBuffer(A)}A.exports=function(A){return null!=A&&(t(A)||function(A){return "function"==typeof A.readFloatLE&&"function"==typeof A.slice&&t(A.slice(0,0))}(A)||!!A._isBuffer)};},892(A,t,r){var e,v,n,j,f;e=r(635),v=r(539).utf8,n=r(445),j=r(539).bin,(f=function(A,t){A.constructor==String?A=t&&"binary"===t.encoding?j.stringToBytes(A):v.stringToBytes(A):n(A)?A=Array.prototype.slice.call(A,0):Array.isArray(A)||A.constructor===Uint8Array||(A=A.toString());for(var r=e.bytesToWords(A),s=8*A.length,b=1732584193,i=-271733879,o=-1732584194,a=271733878,g=0;g<r.length;g++)r[g]=16711935&(r[g]<<8|r[g]>>>24)|4278255360&(r[g]<<24|r[g]>>>8);r[s>>>5]|=128<<s%32,r[14+(s+64>>>9<<4)]=s;var I=f._ff,c=f._gg,C=f._hh,E=f._ii;for(g=0;g<r.length;g+=16){var l=b,h=i,d=o,k=a;b=I(b,i,o,a,r[g+0],7,-680876936),a=I(a,b,i,o,r[g+1],12,-389564586),o=I(o,a,b,i,r[g+2],17,606105819),i=I(i,o,a,b,r[g+3],22,-1044525330),b=I(b,i,o,a,r[g+4],7,-176418897),a=I(a,b,i,o,r[g+5],12,1200080426),o=I(o,a,b,i,r[g+6],17,-1473231341),i=I(i,o,a,b,r[g+7],22,-45705983),b=I(b,i,o,a,r[g+8],7,1770035416),a=I(a,b,i,o,r[g+9],12,-1958414417),o=I(o,a,b,i,r[g+10],17,-42063),i=I(i,o,a,b,r[g+11],22,-1990404162),b=I(b,i,o,a,r[g+12],7,1804603682),a=I(a,b,i,o,r[g+13],12,-40341101),o=I(o,a,b,i,r[g+14],17,-1502002290),b=c(b,i=I(i,o,a,b,r[g+15],22,1236535329),o,a,r[g+1],5,-165796510),a=c(a,b,i,o,r[g+6],9,-1069501632),o=c(o,a,b,i,r[g+11],14,643717713),i=c(i,o,a,b,r[g+0],20,-373897302),b=c(b,i,o,a,r[g+5],5,-701558691),a=c(a,b,i,o,r[g+10],9,38016083),o=c(o,a,b,i,r[g+15],14,-660478335),i=c(i,o,a,b,r[g+4],20,-405537848),b=c(b,i,o,a,r[g+9],5,568446438),a=c(a,b,i,o,r[g+14],9,-1019803690),o=c(o,a,b,i,r[g+3],14,-187363961),i=c(i,o,a,b,r[g+8],20,1163531501),b=c(b,i,o,a,r[g+13],5,-1444681467),a=c(a,b,i,o,r[g+2],9,-51403784),o=c(o,a,b,i,r[g+7],14,1735328473),b=C(b,i=c(i,o,a,b,r[g+12],20,-1926607734),o,a,r[g+5],4,-378558),a=C(a,b,i,o,r[g+8],11,-2022574463),o=C(o,a,b,i,r[g+11],16,1839030562),i=C(i,o,a,b,r[g+14],23,-35309556),b=C(b,i,o,a,r[g+1],4,-1530992060),a=C(a,b,i,o,r[g+4],11,1272893353),o=C(o,a,b,i,r[g+7],16,-155497632),i=C(i,o,a,b,r[g+10],23,-1094730640),b=C(b,i,o,a,r[g+13],4,681279174),a=C(a,b,i,o,r[g+0],11,-358537222),o=C(o,a,b,i,r[g+3],16,-722521979),i=C(i,o,a,b,r[g+6],23,76029189),b=C(b,i,o,a,r[g+9],4,-640364487),a=C(a,b,i,o,r[g+12],11,-421815835),o=C(o,a,b,i,r[g+15],16,530742520),b=E(b,i=C(i,o,a,b,r[g+2],23,-995338651),o,a,r[g+0],6,-198630844),a=E(a,b,i,o,r[g+7],10,1126891415),o=E(o,a,b,i,r[g+14],15,-1416354905),i=E(i,o,a,b,r[g+5],21,-57434055),b=E(b,i,o,a,r[g+12],6,1700485571),a=E(a,b,i,o,r[g+3],10,-1894986606),o=E(o,a,b,i,r[g+10],15,-1051523),i=E(i,o,a,b,r[g+1],21,-2054922799),b=E(b,i,o,a,r[g+8],6,1873313359),a=E(a,b,i,o,r[g+15],10,-30611744),o=E(o,a,b,i,r[g+6],15,-1560198380),i=E(i,o,a,b,r[g+13],21,1309151649),b=E(b,i,o,a,r[g+4],6,-145523070),a=E(a,b,i,o,r[g+11],10,-1120210379),o=E(o,a,b,i,r[g+2],15,718787259),i=E(i,o,a,b,r[g+9],21,-343485551),b=b+l>>>0,i=i+h>>>0,o=o+d>>>0,a=a+k>>>0;}return e.endian([b,i,o,a])})._ff=function(A,t,r,e,v,n,j){var f=A+(t&r|~t&e)+(v>>>0)+j;return (f<<n|f>>>32-n)+t},f._gg=function(A,t,r,e,v,n,j){var f=A+(t&e|r&~e)+(v>>>0)+j;return (f<<n|f>>>32-n)+t},f._hh=function(A,t,r,e,v,n,j){var f=A+(t^r^e)+(v>>>0)+j;return (f<<n|f>>>32-n)+t},f._ii=function(A,t,r,e,v,n,j){var f=A+(r^(t|~e))+(v>>>0)+j;return (f<<n|f>>>32-n)+t},f._blocksize=16,f._digestsize=16,A.exports=function(A,t){if(null==A)throw new Error("Illegal argument "+A);var r=e.wordsToBytes(f(A,t));return t&&t.asBytes?r:t&&t.asString?j.bytesToString(r):e.bytesToHex(r)};}},t={};function r(e){var v=t[e];if(void 0!==v)return v.exports;var n=t[e]={exports:{}};return A[e](n,n.exports,r),n.exports}r.d=(A,t)=>{for(var e in t)r.o(t,e)&&!r.o(A,e)&&Object.defineProperty(A,e,{enumerable:!0,get:t[e]});},r.o=(A,t)=>Object.prototype.hasOwnProperty.call(A,t),r.r=A=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(A,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(A,"__esModule",{value:!0});};var e={};(()=>{r.r(e),r.d(e,{CraiIndex:()=>vt,CramFile:()=>rt,CramRecord:()=>R,IndexedCramFile:()=>jt});const A=1,t=2,v=4,n=8,j=1,f=2,s=4,b=8,i=16,o=32,a=64,g=128,I=256,c=512,C=1024,E=2048;var l=r(892);let h;function d(){return h||(h=new TextDecoder),h}function k(A){let t=0;for(;t<A.length&&0!==A[t];)t++;return d().decode(A.subarray(0,t))}function B(A){return d().decode(A)}const q=4294967296;function u(A,t){const r=t.bytePosition,e=A[r];return e<128?(t.bytePosition=r+1,e):e<192?(t.bytePosition=r+2,(63&e)<<8|A[r+1]):e<224?(t.bytePosition=r+3,(31&e)<<16|A[r+1]<<8|A[r+2]):e<240?(t.bytePosition=r+4,(15&e)<<24|A[r+1]<<16|A[r+2]<<8|A[r+3]):(t.bytePosition=r+5,(15&e)<<28|A[r+1]<<20|A[r+2]<<12|A[r+3]<<4|15&A[r+4])}function Q(A,t){const r={bytePosition:t};return [u(A,r),r.bytePosition-t]}function x(A,t){let r=t;const e=A[r];let v;return e<128?(v=e,r+=1):e<192?(v=16383&(e<<8|A[r+1]),r+=2):e<224?(v=(63&e)<<16|A[r+1]<<8|A[r+2],r+=3):e<240?(v=(31&e)<<24|A[r+1]<<16|A[r+2]<<8|A[r+3],r+=4):e<248?(v=(15&A[r])*q+(A[r+1]<<24|A[r+2]<<16|A[r+3]<<8|A[r+4]),r+=5):e<252?(v=((7&A[r])<<8|A[r+1])*q+(A[r+2]<<24|A[r+3]<<16|A[r+4]<<8|A[r+5]),r+=6):e<254?(v=((3&A[r])<<16|A[r+1]<<8|A[r+2])*q+(A[r+3]<<24|A[r+4]<<16|A[r+5]<<8|A[r+6]),r+=7):e<255?(v=(A[r+1]<<24|A[r+2]<<16|A[r+3]<<8|A[r+4])*q+(A[r+5]<<24|A[r+6]<<16|A[r+7]<<8|A[r+8]),r+=8):(v=72057594037927940*A[r+1]+(A[r+2]<<24|A[r+3]<<16|A[r+4]<<8|A[r+5])*q+(A[r+6]<<24|A[r+7]<<16|A[r+8]<<8|A[r+9]),r+=9),[v,r-t]}function m(A,t,r=0,e=0){const{offset:v,value:n}=t(A,r);return {...n,_endPosition:v+e,_size:v-r}}const N=["F F ","F R ","R F ","R R ","F2F1","F2R1","R2F1","R2R1","F1F2","F1R2","R1F2","R1R2","F2F1","F2R1","R2F1","R2R1","F F ","R F ","F R ","R R ","F1F2","R1F2","F1R2","R1R2","F2F1","R2F1","F2R1","R2R1","F1F2","R1F2","F1R2","R1R2"],w={decodeTags:!0},p={a:0,A:0,c:1,C:1,g:2,G:2,t:3,T:3,n:4,N:4};function y(A,t,r,e){const v=e.refPos-t.start,n=t.seq.charAt(v);n&&(e.ref=n);let j=p[n];void 0===j&&(j=4);const f=r.substitutionMatrix[j][e.data];f&&(e.sub=f);}function D(A){const t={};for(const[r,e]of A)t[`is${e}`]=A=>!!(A&r),t[`set${e}`]=A=>A|r;return t}const F=D([[1,"Paired"],[2,"ProperlyPaired"],[4,"SegmentUnmapped"],[8,"MateUnmapped"],[16,"ReverseComplemented"],[32,"MateReverseComplemented"],[64,"Read1"],[128,"Read2"],[256,"Secondary"],[512,"FailedQc"],[1024,"Duplicate"],[2048,"Supplementary"]]),S=D([[1,"PreservingQualityScores"],[2,"Detached"],[4,"WithMateDownstream"],[8,"DecodeSequenceAsStar"]]),G=D([[1,"OnNegativeStrand"],[2,"Unmapped"]]);class R{tags;flags;cramFlags;readBases;_refRegion;readFeatures;alignmentStart;lengthOnRef;readLength;templateLength;templateSize;_readName;_readNameRaw;_syntheticReadName;mateRecordNumber;mate;uniqueId;sequenceId;readGroupId;mappingQuality;qualityScores;get readName(){if(void 0===this._readName){if(!this._readNameRaw)return this._syntheticReadName;this._readName=k(this._readNameRaw),this._readNameRaw=void 0;}return this._readName}constructor({flags:A,cramFlags:t,readLength:r,mappingQuality:e,lengthOnRef:v,qualityScores:n,mateRecordNumber:j,readBases:f,readFeatures:s,mate:b,readGroupId:i,readNameRaw:o,sequenceId:a,uniqueId:g,templateSize:I,alignmentStart:c,tags:C}){this.flags=A,this.cramFlags=t,this.readLength=r,this.mappingQuality=e,this.lengthOnRef=v,this.qualityScores=n,this.readGroupId=i,this.sequenceId=a,this.uniqueId=g,this.alignmentStart=c,this.tags=C,o&&(this._readNameRaw=o),f&&(this.readBases=f),this.templateSize=I,s&&(this.readFeatures=s),b&&(this.mate=b),j&&(this.mateRecordNumber=j);}qualityScoreAt(A){return this.qualityScores?.[A]}isPaired(){return !!(this.flags&j)}isProperlyPaired(){return !!(this.flags&f)}isSegmentUnmapped(){return !!(this.flags&s)}isMateUnmapped(){return !!(this.flags&b)}isReverseComplemented(){return !!(this.flags&i)}isMateReverseComplemented(){return !!(this.flags&o)}isRead1(){return !!(this.flags&a)}isRead2(){return !!(this.flags&g)}isSecondary(){return !!(this.flags&I)}isFailedQc(){return !!(this.flags&c)}isDuplicate(){return !!(this.flags&C)}isSupplementary(){return !!(this.flags&E)}isDetached(){return !!(this.cramFlags&t)}hasMateDownStream(){return !!(this.cramFlags&v)}isPreservingQualityScores(){return !!(this.cramFlags&A)}isUnknownBases(){return !!(this.cramFlags&n)}getReadBases(){if(!this.readBases&&this._refRegion){const A=function(A,t){if(!A.lengthOnRef&&!A.readLength)return null;if(A.isUnknownBases())return null;const r=A.alignmentStart-t.start;if(!A.readFeatures)return t.seq.slice(r,r+(A.lengthOnRef||0)).toUpperCase();let e="",v=r,n=0;for(;e.length<A.readLength;)if(n<A.readFeatures.length){const r=A.readFeatures[n];if("Q"===r.code||"q"===r.code)n+=1;else if(r.pos===e.length+1)switch(n+=1,r.code){case"b":e+=r.data,v+=r.data.length;break;case"B":e+=r.data[0],v+=1;break;case"X":e+=r.sub,v+=1;break;case"I":case"i":case"S":e+=r.data;break;case"D":case"N":v+=r.data;}else {const A=t.seq.slice(v,v+r.pos-e.length-1);e+=A,v+=A.length;}}else {const r=t.seq.slice(v,v+A.readLength-e.length);e+=r,v+=r.length;}return e.toUpperCase()}(this,this._refRegion);A&&(this.readBases=A);}return this.readBases}getPairOrientation(){const A=this.flags;if(1!=(13&A)||this.sequenceId!==this.mate?.sequenceId)return;const t=this.templateLength||this.templateSize||0;return N[A>>4&15|(t>0?16:0)]}addReferenceSequence(A,t){if(this.readFeatures)for(const r of this.readFeatures)"X"===r.code&&y(0,A,t,r);!this.readBases&&A.start<=this.alignmentStart&&A.end>=this.alignmentStart+(this.lengthOnRef||this.readLength)-1&&(this._refRegion=A);}toJSON(){const A={alignmentStart:this.alignmentStart,cramFlags:this.cramFlags,flags:this.flags,readGroupId:this.readGroupId,readLength:this.readLength,sequenceId:this.sequenceId,tags:this.tags,uniqueId:this.uniqueId,readName:this.readName,readBases:this.getReadBases(),qualityScores:this.qualityScores?Array.from(this.qualityScores):this.qualityScores};return void 0!==this.lengthOnRef&&(A.lengthOnRef=this.lengthOnRef),void 0!==this.mappingQuality&&(A.mappingQuality=this.mappingQuality),void 0!==this.templateSize&&(A.templateSize=this.templateSize),void 0!==this.templateLength&&(A.templateLength=this.templateLength),void 0!==this.readFeatures&&(A.readFeatures=this.readFeatures),void 0!==this.mate&&(A.mate=this.mate),void 0!==this.mateRecordNumber&&(A.mateRecordNumber=this.mateRecordNumber),A}}var K,M,O,H,L,J,_,P,$,Y,T,U,z,V,X,W=function(A,t,r,e,v){if("m"===e)throw new TypeError("Private method is not writable");if("a"===e&&!v)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?A!==t||!v:!t.has(A))throw new TypeError("Cannot write private member to an object whose class did not declare it");return "a"===e?v.call(A,r):v?v.value=r:t.set(A,r),r},Z=function(A,t,r,e){if("a"===r&&!e)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?A!==t||!e:!t.has(A))throw new TypeError("Cannot read private member from an object whose class did not declare it");return "m"===r?e:"a"===r?e.call(A):e?e.value:t.get(A)};class AA extends Map{constructor(A={}){if(super(),K.add(this),M.set(this,0),O.set(this,new Map),H.set(this,new Map),L.set(this,void 0),J.set(this,void 0),_.set(this,void 0),!(A.maxSize&&A.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if("number"==typeof A.maxAge&&0===A.maxAge)throw new TypeError("`maxAge` must be a number greater than 0");W(this,L,A.maxSize,"f"),W(this,J,A.maxAge||Number.POSITIVE_INFINITY,"f"),W(this,_,A.onEviction,"f");}get __oldCache(){return Z(this,H,"f")}get(A){if(Z(this,O,"f").has(A)){const t=Z(this,O,"f").get(A);return Z(this,K,"m",T).call(this,A,t)}if(Z(this,H,"f").has(A)){const t=Z(this,H,"f").get(A);if(!Z(this,K,"m",$).call(this,A,t))return Z(this,K,"m",V).call(this,A,t),t.value}}set(A,t,{maxAge:r=Z(this,J,"f")}={}){const e="number"==typeof r&&r!==Number.POSITIVE_INFINITY?Date.now()+r:void 0;return Z(this,O,"f").has(A)?Z(this,O,"f").set(A,{value:t,expiry:e}):Z(this,K,"m",z).call(this,A,{value:t,expiry:e}),this}has(A){return Z(this,O,"f").has(A)?!Z(this,K,"m",$).call(this,A,Z(this,O,"f").get(A)):!!Z(this,H,"f").has(A)&&!Z(this,K,"m",$).call(this,A,Z(this,H,"f").get(A))}peek(A){return Z(this,O,"f").has(A)?Z(this,K,"m",U).call(this,A,Z(this,O,"f")):Z(this,H,"f").has(A)?Z(this,K,"m",U).call(this,A,Z(this,H,"f")):void 0}expiresIn(A){const t=Z(this,O,"f").get(A)??Z(this,H,"f").get(A);if(t)return t.expiry?t.expiry-Date.now():Number.POSITIVE_INFINITY}delete(A){var t;const r=Z(this,O,"f").delete(A);return r&&W(this,M,(t=Z(this,M,"f"),--t),"f"),Z(this,H,"f").delete(A)||r}clear(){Z(this,O,"f").clear(),Z(this,H,"f").clear(),W(this,M,0,"f");}resize(A){if(!(A&&A>0))throw new TypeError("`maxSize` must be a number greater than 0");const t=[...Z(this,K,"m",X).call(this)],r=t.length-A;r<0?(W(this,O,new Map(t),"f"),W(this,H,new Map,"f"),W(this,M,t.length,"f")):(r>0&&Z(this,K,"m",P).call(this,t.slice(0,r)),W(this,H,new Map(t.slice(r)),"f"),W(this,O,new Map,"f"),W(this,M,0,"f")),W(this,L,A,"f");}evict(A=1){const t=A;if(!t||t<=0)return;const r=[...Z(this,K,"m",X).call(this)],e=Math.trunc(Math.min(t,Math.max(r.length-1,0)));e<=0||(Z(this,K,"m",P).call(this,r.slice(0,e)),W(this,H,new Map(r.slice(e)),"f"),W(this,O,new Map,"f"),W(this,M,0,"f"));}*keys(){for(const[A]of this)yield A;}*values(){for(const[,A]of this)yield A;}*[(M=new WeakMap,O=new WeakMap,H=new WeakMap,L=new WeakMap,J=new WeakMap,_=new WeakMap,K=new WeakSet,P=function(A){if("function"==typeof Z(this,_,"f"))for(const[t,r]of A)Z(this,_,"f").call(this,t,r.value);},$=function(A,t){return "number"==typeof t.expiry&&t.expiry<=Date.now()&&("function"==typeof Z(this,_,"f")&&Z(this,_,"f").call(this,A,t.value),this.delete(A))},Y=function(A,t){if(!Z(this,K,"m",$).call(this,A,t))return t.value},T=function(A,t){return t.expiry?Z(this,K,"m",Y).call(this,A,t):t.value},U=function(A,t){const r=t.get(A);return Z(this,K,"m",T).call(this,A,r)},z=function(A,t){var r;Z(this,O,"f").set(A,t),W(this,M,(r=Z(this,M,"f"),++r),"f"),Z(this,M,"f")>=Z(this,L,"f")&&(W(this,M,0,"f"),Z(this,K,"m",P).call(this,Z(this,H,"f")),W(this,H,Z(this,O,"f"),"f"),W(this,O,new Map,"f"));},V=function(A,t){Z(this,H,"f").delete(A),Z(this,K,"m",z).call(this,A,t);},X=function*(){for(const A of Z(this,H,"f")){const[t,r]=A;Z(this,O,"f").has(t)||Z(this,K,"m",$).call(this,t,r)||(yield A);}for(const A of Z(this,O,"f")){const[t,r]=A;Z(this,K,"m",$).call(this,t,r)||(yield A);}},Symbol.iterator)](){for(const A of Z(this,O,"f")){const[t,r]=A;Z(this,K,"m",$).call(this,t,r)||(yield [t,r.value]);}for(const A of Z(this,H,"f")){const[t,r]=A;Z(this,O,"f").has(t)||Z(this,K,"m",$).call(this,t,r)||(yield [t,r.value]);}}*entriesDescending(){let A=[...Z(this,O,"f")];for(let t=A.length-1;t>=0;--t){const r=A[t],[e,v]=r;Z(this,K,"m",$).call(this,e,v)||(yield [e,v.value]);}A=[...Z(this,H,"f")];for(let t=A.length-1;t>=0;--t){const r=A[t],[e,v]=r;Z(this,O,"f").has(e)||Z(this,K,"m",$).call(this,e,v)||(yield [e,v.value]);}}*entriesAscending(){for(const[A,t]of Z(this,K,"m",X).call(this))yield [A,t.value];}get size(){if(!Z(this,M,"f"))return Z(this,H,"f").size;let A=0;for(const t of Z(this,H,"f").keys())Z(this,O,"f").has(t)||A++;return Math.min(Z(this,M,"f")+A,Z(this,L,"f"))}get maxSize(){return Z(this,L,"f")}get maxAge(){return Z(this,J,"f")}entries(){return this.entriesAscending()}forEach(A,t=this){for(const[r,e]of this.entriesAscending())A.call(t,e,r,this);}get[Symbol.toStringTag](){return "QuickLRU"}toString(){return `QuickLRU(${this.size}/${this.maxSize})`}[Symbol.for("nodejs.util.inspect.custom")](){return this.toString()}}let tA=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];"undefined"!=typeof Int32Array&&(tA=new Int32Array(tA));const rA=(A,t)=>{let r=0===t?0:-1^t;for(let t=0;t<A.length;t++)r=tA[255&(r^A[t])]^r>>>8;return -1^r};class eA extends Error{}class vA extends Error{}class nA extends eA{}class jA extends eA{}class fA extends eA{code="CRAM_BUFFER_OVERRUN"}const sA=async function(A={}){var t=A,r=!!globalThis.WorkerGlobalScope;if(globalThis.window||r)try{new URL(".","");}catch{}var e,v,n,j,f=console.log.bind(console),s=console.error.bind(console),b=!1,i=!1;function o(){var A=S.buffer;E=new Int8Array(A),I=new Int16Array(A),t.HEAPU8=k=new Uint8Array(A),t.HEAP32=c=new Int32Array(A),d=new Uint32Array(A),l=new Float32Array(A),h=new Float64Array(A),C=new BigInt64Array(A),new BigUint64Array(A);}function a(A){throw t.onAbort?.(A),s(A=`Aborted(${A})`),b=!0,A=new WebAssembly.RuntimeError(A+". Build with -sASSERTIONS for more info."),n?.(A),A}class g{name="ExitStatus";constructor(A){this.message=`Program terminated with exit(${A})`,this.status=A;}}var I,c,C,E,l,h,d,k,B=A=>{for(;A.length>0;)A.shift()(t);},q=[],u=[],Q=()=>{var A=t.preRun.shift();u.push(A);},x=!0,m=0,N={},w=A=>{if(!(A instanceof g||"unwind"==A))throw A},p=A=>{throw e=A,x||m>0||(t.onExit?.(A),b=!0),new g(A)},y=[null,[],[]],D=new TextDecoder;if(t.noExitRuntime&&(x=t.noExitRuntime),t.print&&(f=t.print),t.printErr&&(s=t.printErr),t.preInit)for("function"==typeof t.preInit&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.shift()();t.getValue=function(A,t="i8"){switch(t.endsWith("*")&&(t="*"),t){case"i1":case"i8":return E[A];case"i16":return I[A>>1];case"i32":return c[A>>2];case"i64":return C[A>>3];case"float":return l[A>>2];case"double":return h[A>>3];case"*":return d[A>>2];default:a(`invalid type for getValue: ${t}`);}};var F,S,G,R={e:()=>a(""),d:()=>{x=!1,m=0;},a:(A,t)=>{if(N[A]&&(clearTimeout(N[A].id),delete N[A]),!t)return 0;var r=setTimeout(()=>{delete N[A],(A=>{if(!b)try{A();}catch(A){w(A);}finally{if(!(x||m>0))try{e=A=e,p(A);}catch(A){w(A);}}})(()=>F(A,performance.now()));},t);return N[A]={id:r,u:t},0},b:A=>{var t=k.length;if((A>>>=0)>2147483648)return !1;for(var r=1;r<=4;r*=2){var e=t*(1+.2/r);e=Math.min(e,A+100663296);A:{e=(Math.min(2147483648,65536*Math.ceil(Math.max(A,e)/65536))-S.buffer.byteLength+65535)/65536|0;try{S.grow(e),o();var v=1;break A}catch(A){}v=void 0;}if(v)return !0}return !1},g:A=>{e=A,p(A);},f:(A,t,r,e)=>{for(var v=0,n=0;n<r;n++){var j=d[t>>2],b=d[t+4>>2];t+=8;for(var i=0;i<b;i++){var o=A,a=k[j+i],g=y[o];if(0===a||10===a){o=1===o?f:s;for(var I=(a=0)+void 0;g[a]&&!(a>=I);)++a;o(a=D.decode(g.buffer?g.subarray(0,a):new Uint8Array(g.slice(0,a)))),g.length=0;}else g.push(a);}v+=b;}return d[e>>2]=v,0},c:p};return G=await async function(){function A(A){return A=G=A.exports,t._malloc=A.j,t._free=A.k,t._arith_uncompress=A.l,t._fqz_decompress=A.m,t._rans_uncompress=A.n,t._rans_uncompress_4x16=A.o,t._tok3_decode_names=A.p,t._bz2_uncompress=A.q,t._zlib_uncompress=A.r,t._batch_itf8_decode=A.s,F=A.t,S=A.h,o(),G}var r={a:R};return t.instantiateWasm?new Promise(e=>{t.instantiateWasm(r,(t,r)=>{e(A(t));});}):(j??=function(A){for(var t,r=0,e=124004,v=new Uint8Array(e);r<e;++r)t=A.charCodeAt(r),v[r]=~t>>8&t;return v}('\0asm\0\0\0d`\0````\0`\0\0`\0``\0``|``~~`|\0`~~+aa\0\nab\0ac\0ad\0ae\0af\0ag\0;:\b\0\0\v\t\b\f\0\r\0\0\tp€€€\bA€‰\v5\rh\0i\0@j\0\bk\0l\0?m\0>n\0=o\0:p\x009q\x008r\x007s\x005t\0.\t\0A\v4$&<;6/0123\f\nÕÓ:‚\f\b@ \0E\r\0 \0A\bk" \0Ak(\0"Axq"\0j!@ Aq\r\0 AqE\r  (\0"k"AÄþ\0(\0I\r \0 j!\0@@@AÈþ\0(\0 G@ (\f! AÿM@  (\b"G\rA´þ\0A´þ\0(\0A~ Avwq6\0\f\v (!  G@ (\b" 6\f  6\b\f\v (" Aj ("E\r Aj\v!@ ! "Aj! ("\r\0 Aj! ("\r\0\v A\x006\0\f\v ("AqAG\rA¼þ\0 \x006\0  A~q6  \0Ar6  \x006\0\v  6\f  6\b\f\vA\0!\v E\r\0@ ("At"(ä€ F@ Aä€j 6\0 \rA¸þ\0A¸þ\0(\0A~ wq6\0\f\v@  (F@  6\f\v  6\v E\r\v  6 ("@  6  6\v ("E\r\0  6  6\v  O\r\0 ("AqE\r\0@@@@ AqE@AÌþ\0(\0 F@AÌþ\0 6\0AÀþ\0AÀþ\0(\0 \0j"\x006\0  \0Ar6 AÈþ\0(\0G\rA¼þ\0A\x006\0AÈþ\0A\x006\0\vAÈþ\0(\0" F@AÈþ\0 6\0A¼þ\0A¼þ\0(\0 \0j"\x006\0  \0Ar6 \0 j \x006\0\v Axq \0j!\0 (\f! AÿM@ (\b" F@A´þ\0A´þ\0(\0A~ Avwq6\0\f\v  6\f  6\b\f\v (!\b  G@ (\b" 6\f  6\b\f\v (" Aj ("E\r Aj\v!@ ! "Aj! ("\r\0 Aj! ("\r\0\v A\x006\0\f\v  A~q6  \0Ar6 \0 j \x006\0\f\vA\0!\v \bE\r\0@ ("At"(ä€ F@ Aä€j 6\0 \rA¸þ\0A¸þ\0(\0A~ wq6\0\f\v@  \b(F@ \b 6\f\v \b 6\v E\r\v  \b6 ("@  6  6\v ("E\r\0  6  6\v  \0Ar6 \0 j \x006\0  G\r\0A¼þ\0 \x006\0\v \0AÿM@ \0AøqAÜþ\0j!A´þ\0(\0"A \0Avt"\0qE@A´þ\0 \0 r6\0 \f\v (\b\v!\0  6\b \0 6\f  6\f  \x006\b\vA! \0AÿÿÿM@ \0A& \0A\bvg"kvAq AtrA>s!\v  6 B\x007 AtAä€j!@A¸þ\0(\0"A t"qE@A¸þ\0  r6\0  6\0A!A\b\f\v \0A AvkA\0 AGt! (\0!@ "(Axq \0F\r Av! At!  Aqj"("\r\0\v  6A! !A\b\v!\0 "\f\v (\b" 6\f  6\bA!\0A\b!A\0\v!  j 6\0  6\f \0 j 6\0AÔþ\0AÔþ\0(\0Ak"\0A \06\0\v\vÁ(\v#\0Ak"\n$\0@@@@@@@@@@ \0AôM@A´þ\0(\0"A \0A\vjAøq \0A\vI"Av"\0v"Aq@@ AsAq \0j"At"AÜþ\0j"\0 (ä~"(\b"F@A´þ\0 A~ wq6\0\f\v  \x006\f \0 6\b\v A\bj!\0  Ar6  j" (Ar6\f\v\v A¼þ\0(\0"\bM\r @@A \0t"A\0 kr  \0tqh"At"AÜþ\0j" (ä~"\0(\b"F@A´þ\0 A~ wq"6\0\f\v  6\f  6\b\v \0 Ar6 \0 j"  k"Ar6 \0 j 6\0 \b@ \bAxqAÜþ\0j!AÈþ\0(\0! A \bAvt"qE@A´þ\0  r6\0 \f\v (\b\v!  6\b  6\f  6\f  6\b\v \0A\bj!\0AÈþ\0 6\0A¼þ\0 6\0\f\v\vA¸þ\0(\0"\vE\r \vhAt(ä€"(Axq k! !@@ ("\0E@ ("\0E\r\v \0(Axq k"   I"! \0  ! \0!\f\v\v (!\t  (\f"\0G@ (\b" \x006\f \0 6\b\f\n\v (" Aj ("E\r Aj\v!@ ! "\0Aj! \0("\r\0 \0Aj! \0("\r\0\v A\x006\0\f\t\vA! \0A¿K\r\0 \0A\vj"Axq!A¸þ\0(\0"E\r\0A!\bA\0 k! \0AôÿÿM@ A& A\bvg"\0kvAq \0AtkA>j!\b\v@@@ \bAt(ä€"E@A\0!\0\f\vA\0!\0 A \bAvkA\0 \bAGt!@@ (Axq k" O\r\0 ! "\r\0A\0! !\0\f\v \0 ("   AvAqj("F \0 !\0 At! \r\0\v\v \0 rE@A\0!A \bt"\0A\0 \0kr q"\0E\r \0hAt(ä€!\0\v \0E\r\v@ \0(Axq k" I!   ! \0  ! \0("  \0(\v"\0\r\0\v\v E\r\0 A¼þ\0(\0 kO\r\0 (!\b  (\f"\0G@ (\b" \x006\f \0 6\b\f\b\v (" Aj ("E\r Aj\v!@ ! "\0Aj! \0("\r\0 \0Aj! \0("\r\0\v A\x006\0\f\v A¼þ\0(\0"M@AÈþ\0(\0!\0@  k"AO@ \0 j" Ar6 \0 j 6\0 \0 Ar6\f\v \0 Ar6 \0 j" (Ar6A\0!A\0!\vA¼þ\0 6\0AÈþ\0 6\0 \0A\bj!\0\f\t\v AÀþ\0(\0"I@AÀþ\0  k"6\0AÌþ\0AÌþ\0(\0"\0 j"6\0  Ar6 \0 Ar6 \0A\bj!\0\f\t\vA\0!\0 A/j"AŒ‚(\0@A”‚(\0\f\vA˜‚B7\0A‚B€ €€€€7\0AŒ‚ \nA\fjApqAتժs6\0A ‚A\x006\0AðA\x006\0A€ \v"j"A\0 k"q" M\r\bAì(\0"@Aä(\0"\b j"\t \bM\r\t  \tI\r\t\v@Að-\0\0AqE@@@@@AÌþ\0(\0"@Aô!\0@ \0(\0"\b M@  \b \0(jI\r\v \0(\b"\0\r\0\v\vA\0"AF\r !A‚(\0"\0Ak" q@  k  jA\0 \0kqj!\v  M\rAì(\0"\0@Aä(\0" j" M\r \0 I\r\v "\0 G\r\f\v  k q"" \0(\0 \0(jF\r !\0\v \0AF\r A0j M@ \0!\f\vA”‚(\0"  kjA\0 kq"AF\r  j! \0!\f\v AG\r\vAðAð(\0Ar6\0\v !A\0!\0 AF\r \0AF\r \0 M\r \0 k" A(jM\r\vAäAä(\0 j"\x006\0Aè(\0 \0I@Aè \x006\0\v@AÌþ\0(\0"@Aô!\0@  \0(\0" \0("jF\r \0(\b"\0\r\0\v\f\vAÄþ\0(\0"\0A\0 \0 ME@AÄþ\0 6\0\vA\0!\0Aø 6\0Aô 6\0AÔþ\0A6\0AØþ\0AŒ‚(\x006\0A€‚A\x006\0@ \0At" AÜþ\0j"6ä~  6è~ \0Aj"\0A G\r\0\vAÀþ\0 A(k"\0Ax kAq"k"6\0AÌþ\0  j"6\0  Ar6 \0 jA(6AÐþ\0Aœ‚(\x006\0\f\v  M\r  K\r \0(\fA\bq\r \0  j6AÌþ\0 Ax kAq"\0j"6\0AÀþ\0AÀþ\0(\0 j" \0k"\x006\0  \0Ar6  jA(6AÐþ\0Aœ‚(\x006\0\f\vA\0!\0\f\vA\0!\0\f\vAÄþ\0(\0 K@AÄþ\0 6\0\v  j!Aô!\0@@  \0(\0"G@ \0(\b"\0\r\f\v\v \0-\0\fA\bqE\r\vAô!\0@@ \0(\0" M@   \0(j"I\r\v \0(\b!\0\f\v\vAÀþ\0 A(k"\0Ax kAq"k"6\0AÌþ\0  j"6\0  Ar6 \0 jA(6AÐþ\0Aœ‚(\x006\0  A\' kAqjA/k"\0 \0 AjI"A6 Aü)\x007 Aô)\x007\bAü A\bj6\0Aø 6\0Aô 6\0A€‚A\x006\0 Aj!\0@ \0A6 \0A\bj \0Aj!\0 I\r\0\v  F\r\0  (A~q6   k"Ar6  6\0 AÿM@ AøqAÜþ\0j!\0A´þ\0(\0"A Avt"qE@A´þ\0  r6\0 \0\f\v \0(\b\v! \0 6\b  6\fA\f!A\b\f\vA!\0 AÿÿÿM@ A& A\bvg"\0kvAq \0AtrA>s!\0\v  \x006 B\x007 \0AtAä€j!@@A¸þ\0(\0"A \0t"qE@A¸þ\0  r6\0  6\0\f\v A \0AvkA\0 \0AGt!\0 (\0!@ "(Axq F\r \0Av! \0At!\0  Aqj"("\r\0\v  6\v  6A\b! "!\0A\f\f\v (\b"\0 6\f  6\b  \x006\bA\0!\0A!A\f\v j 6\0  j \x006\0\vAÀþ\0(\0"\0 M\r\0AÀþ\0 \0 k"6\0AÌþ\0AÌþ\0(\0"\0 j"6\0  Ar6 \0 Ar6 \0A\bj!\0\f\vA°þ\0A06\0A\0!\0\f\v \0 6\0 \0 \0( j6 Ax kAqj"\b Ar6 Ax kAqj"  \bj"k!@AÌþ\0(\0 F@AÌþ\0 6\0AÀþ\0AÀþ\0(\0 j"\x006\0  \0Ar6\f\vAÈþ\0(\0 F@AÈþ\0 6\0A¼þ\0A¼þ\0(\0 j"\x006\0  \0Ar6 \0 j \x006\0\f\v ("\0AqAF@ \0Axq!\t (\f!@ \0AÿM@ (\b" F@A´þ\0A´þ\0(\0A~ \0Avwq6\0\f\v  6\f  6\b\f\v (!@  G@ (\b"\0 6\f  \x006\b\f\v@ ("\0 Aj ("\0E\r Aj\v!@ ! \0"Aj! \0("\0\r\0 Aj! ("\0\r\0\v A\x006\0\f\vA\0!\v E\r\0@ ("\0At"(ä€ F@ Aä€j 6\0 \rA¸þ\0A¸þ\0(\0A~ \0wq6\0\f\v@  (F@  6\f\v  6\v E\r\v  6 ("\0@  \x006 \0 6\v ("\0E\r\0  \x006 \0 6\v  \tj!  \tj"(!\0\v  \0A~q6  Ar6  j 6\0 AÿM@ AøqAÜþ\0j!\0A´þ\0(\0"A Avt"qE@A´þ\0  r6\0 \0\f\v \0(\b\v! \0 6\b  6\f  \x006\f  6\b\f\vA! AÿÿÿM@ A& A\bvg"\0kvAq \0AtrA>s!\v  6 B\x007 AtAä€j!\0@@A¸þ\0(\0"A t"qE@A¸þ\0  r6\0 \0 6\0\f\v A AvkA\0 AGt! \0(\0!@ "\0(Axq F\r Av! At! \0 Aqj"("\r\0\v  6\v  \x006  6\f  6\b\f\v \0(\b" 6\f \0 6\b A\x006  \x006\f  6\b\v \bA\bj!\0\f\v@ \bE\r\0@ ("At"(ä€ F@ Aä€j \x006\0 \0\rA¸þ\0 A~ wq"6\0\f\v@  \b(F@ \b \x006\f\v \b \x006\v \0E\r\v \0 \b6 ("@ \0 6  \x006\v ("E\r\0 \0 6  \x006\v@ AM@   j"\0Ar6 \0 j"\0 \0(Ar6\f\v  Ar6  j" Ar6  j 6\0 AÿM@ AøqAÜþ\0j!\0A´þ\0(\0"A Avt"qE@A´þ\0  r6\0 \0\f\v \0(\b\v! \0 6\b  6\f  \x006\f  6\b\f\vA!\0 AÿÿÿM@ A& A\bvg"\0kvAq \0AtrA>s!\0\v  \x006 B\x007 \0AtAä€j!@@ A \0t"qE@A¸þ\0  r6\0  6\0  6\f\v A \0AvkA\0 \0AGt!\0 (\0!@ "(Axq F\r \0Av! \0At!\0  Aqj"("\r\0\v  6  6\v  6\f  6\b\f\v (\b"\0 6\f  6\b A\x006  6\f  \x006\b\v A\bj!\0\f\v@ \tE\r\0@ ("At"(ä€ F@ Aä€j \x006\0 \0\rA¸þ\0 \vA~ wq6\0\f\v@  \t(F@ \t \x006\f\v \t \x006\v \0E\r\v \0 \t6 ("@ \0 6  \x006\v ("E\r\0 \0 6  \x006\v@ AM@   j"\0Ar6 \0 j"\0 \0(Ar6\f\v  Ar6  j" Ar6  j 6\0 \b@ \bAxqAÜþ\0j!\0AÈþ\0(\0!A \bAvt" qE@A´þ\0  r6\0 \0\f\v \0(\b\v! \0 6\b  6\f  \x006\f  6\b\vAÈþ\0 6\0A¼þ\0 6\0\v A\bj!\0\v \nAj$\0 \0\vá@ \0@@A¨‚(\0"Aÿ\0K\r\0 -\0°‚AG\r\0 At(°ƒ!\vA\0 (\0 \0F\r\0A \0 (F\r\0A \0 (\bF\r\0A \0 (\fF\r\0A \0 (F\r\0A \0 (F\r\0A \0 (F\r\0A \0 (F\r\0A\b \0 ( F\r\0 ($ \0G\rA\t\vAt j"\0(PE@AëA-\v \0A\x006P\v\vA™AÎ\0\v†\f\b E@A\0\v \0As!\0 AO@@ AqE@ !\f\v -\0\0 \0sAÿqAt( < \0A\bvs!\0 Aj"AqE@ Ak!\f\v -\0 \0sAÿqAt( < \0A\bvs!\0 Aj"AqE@ Ak!\f\v -\0 \0sAÿqAt( < \0A\bvs!\0 Aj"AqE@ Ak!\f\v -\0 \0sAÿqAt( < \0A\bvs!\0 Aj! Ak!\v An"\bAll!\n@ \bAk"\tE@\f\v !@ ( s"AvAüq( \\ AvAüq( T AvAüq( L AÿqAt( Dsss! (\f s"AvAüq( \\ AvAüq( T AvAüq( L AÿqAt( Dsss! (\b s"AvAüq( \\ AvAüq( T AvAüq( L AÿqAt( Dsss! ( s"AvAüq( \\ AvAüq( T AvAüq( L AÿqAt( Dsss! (\0 \0s"\0AvAüq( \\ \0AvAüq( T \0AvAüq( L \0AÿqAt( Dsss!\0 Aj! \tAk"\t\r\0\v  \bAljAk!\v  \nj! Aj! ( (\f (\b ( (\0 \0s"\0A\bv \0AÿqAt( <s"\0A\bv \0AÿqAt( <s"\0A\bv \0AÿqAt( <s"\0AÿqAt( < ss \0A\bvs"\0A\bv \0AÿqAt( <s"\0A\bv \0AÿqAt( <s"\0A\bv \0AÿqAt( <s"\0AÿqAt( < ss \0A\bvs"\0A\bv \0AÿqAt( <s"\0A\bv \0AÿqAt( <s"\0A\bv \0AÿqAt( <s"\0AÿqAt( < ss \0A\bvs"\0A\bv \0AÿqAt( <s"\0A\bv \0AÿqAt( <s"\0A\bv \0AÿqAt( <s"\0AÿqAt( < ss \0A\bvs"\0A\bv \0AÿqAt( <s"\0A\bv \0AÿqAt( <s"\0A\bv \0AÿqAt( <s"\0A\bv \0AÿqAt( <s!\0\v AK@@ -\0\0 \0sAÿqAt( < \0A\bvs"\0A\bv -\0 \0sAÿqAt( <s"\0A\bv -\0 \0sAÿqAt( <s"\0A\bv -\0 \0sAÿqAt( <s"\0A\bv -\0 \0sAÿqAt( <s"\0A\bv -\0 \0sAÿqAt( <s"\0A\bv -\0 \0sAÿqAt( <s"\0A\bv -\0 \0sAÿqAt( <s!\0 A\bj! A\bk"AK\r\0\v\v@ E\r\0 -\0\0 \0sAÿqAt( < \0A\bvs!\0 AF\r\0 -\0 \0sAÿqAt( < \0A\bvs!\0 AF\r\0 -\0 \0sAÿqAt( < \0A\bvs!\0 AF\r\0 -\0 \0sAÿqAt( < \0A\bvs!\0 AF\r\0 -\0 \0sAÿqAt( < \0A\bvs!\0 AF\r\0 -\0 \0sAÿqAt( < \0A\bvs!\0 AF\r\0 -\0 \0sAÿqAt( < \0A\bvs!\0\v \0As\vÝ#\0Ak"$\0A¤‚(\0A߷ޚG@$A¤‚A߷ޚ6\0\v@@A¨‚(\0"Aÿ\0K\r\0 -\0°‚AG\r\0 At(°ƒ!\v "E@Aø\0,"E\r@A¨‚(\0"Aÿ\0K\r\0 -\0°‚AG\r\0 At 6°ƒ\v\v A(j! AÐ\0j!@ (P@A!A\f\v \0 (\0M\rA\0\v!@ (T\r\0 ! \0 (,K\r\0 AÔ\0j!A!\f\v (XE@ (0 \0O@ AØ\0j!A!\f\vA  AF!\v (\\E@ (4 \0O@ AÜ\0j!A!\f\vA  AF!\v (`E@ (8 \0O@ Aà\0j!A!\f\vA  AF!\v (dE@ (< \0O@ Aä\0j!A!\f\vA  AF!\v (hE@ (@ \0O@ Aè\0j!A!\f\vA  AF!\v (lE@ (D \0O@ Aì\0j!A!\f\vA  AF!\v (pE@ (H \0O@ Að\0j!A\b!\f\vA\b  AF!\v@@ (tE@ \0 (LK\r Aô\0j!A\t!\f\v AG\rA—A#A\0!\f\vA\t  AF!\v  Atj"(\0"@ \v  \0,"6\0 E@A\0!\f\v  At"j \x006\0  jA6\0\f\v A6\0  Atj(\0!\v Aj$\0 \vj#\0A€k"$\0@  L\r\0 A€Àq\r\0    k"A€ A€I"- E@@ \0 A€\r A€k"AÿK\r\0\v\v \0  \r\v A€j$\0\v\0 \0-\0\0A qE@   \0!\v\vW~@Aý\0(\0"­ \0­B|Bøÿÿÿƒ|"BÿÿÿÿX@ §"\0?\0AtM\r \0\r\vA°þ\0A06\0A\vAý\0 \x006\0 \vŠ\b\v \0E@ \b\v A@O@A°þ\0A06\0A\0\vA A\vjAxq A\vI! \0A\bk"("\tAxq!\b@ \tAqE@ A€I\r Aj \bM@ ! \b kA”‚(\0AtM\r\vA\0\f\v  \bj!@  \bM@ \b k"AI\r   \tAqrAr6  j" Ar6  (Ar6  +\f\vAÌþ\0(\0 F@AÀþ\0(\0 \bj"\b M\r   \tAqrAr6  j" \b k"Ar6AÀþ\0 6\0AÌþ\0 6\0\f\vAÈþ\0(\0 F@A¼þ\0(\0 \bj" I\r@  k"AO@   \tAqrAr6  j"\b Ar6  j" 6\0  (A~q6\f\v  \tAq rAr6  j" (Ar6A\0!\bA\0!\vAÈþ\0 \b6\0A¼þ\0 6\0\f\v ("Aq\r Axq \bj"\v I\r \v k!\f (\f!@ AÿM@ (\b" F@A´þ\0A´þ\0(\0A~ Avwq6\0\f\v  6\f  6\b\f\v (!\n@  G@ (\b" 6\f  6\b\f\v@ (" Aj ("E\r Aj\v!\b@ \b! "Aj!\b ("\r\0 Aj!\b ("\r\0\v A\x006\0\f\vA\0!\v \nE\r\0@ ("At"(ä€ F@ Aä€j 6\0 \rA¸þ\0A¸þ\0(\0A~ wq6\0\f\v@  \n(F@ \n 6\f\v \n 6\v E\r\v  \n6 ("@  6  6\v ("E\r\0  6  6\v \fAM@  \tAq \vrAr6  \vj" (Ar6\f\v   \tAqrAr6  j" \fAr6  \vj" (Ar6  \f+\v !\v \v"@ A\bj\v \b"E@A\0\v  \0A|Ax \0Ak(\0"Aq Axqj"   K# \0 \v\0  \0 A˜ý\0!"\0F@\v \0 n\vÕ#\0Ak"$\0  6\f#\0AÐk"$\0  6Ì A j"A\0A(ü\v\0  (Ì6ÈA\0 \0 AÈj AÐ\0j  A\0HAA˜ý\0A˜ý\0(\0"A_q6\0@@AÈý\0(\0E@AÈý\0AÐ\x006\0A´ý\0A\x006\0A¨ý\0B\x007\0AÄý\0(\0!AÄý\0 6\0\f\vA¨ý\0(\0\r\vAA˜ý\0\r\vA˜ý\0 \0 AÈj AÐ\0j A j \v!\0 A˜ý\0A\0A\0A¼ý\0(\0\0AÈý\0A\x006\0AÄý\0 6\0A´ý\0A\x006\0A¬ý\0(\0A¨ý\0B\x007\0A\0 \0\vA˜ý\0A˜ý\0(\0 A qr6\0A\0\v AÐj$\0 Aj$\0\vØ#\0AЩk"\b$\0@ AI\r\0 AþÿÿÿK\r\0@ E@ \b"! E\r\v \0 j"A\bk!\f \bAjA\0A€\bü\v\0 \0Aj! \0-\0\0!@@ A\fH\r\0@ \bAj AtjA6\0@@ E@ Aj" -\0\0"F\r Aj!A\0!\f\v AþL@ Aj! Ak!\f\v\f\v -\0! Aj! !\v E\r Aj \fI\r\0\v\v@ E\r\0@ \bAj AtjA6\0  \fO\r@ E@ Aj!A\0! Aj" -\0\0"\nG@ ! \n!\f\v  \fO@\f\v -\0! Aj!\f\v AþJ\r Aj! Ak!\v E\r  \fI\r\0\v\v  \0k!\t\v \0 \tj!A\0!\t@ \bAj \tAtj"(\0@@ \f kAN@ ,\0\0"Aÿ\0q! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v -\0Aÿ\0q Atr! Aj!\f\v  \fO@A\0! A\x006\0A\0\f\vA\0! ",\0\0"\nA\0N@  \n6\0 \n!A\f\v@ ,\0\0"\nAÿ\0q Atr! Aj! \nA\0N\r  \fI\r\0\v\v  6\0  k\v  \vj!\v j!\v \tAj"\tA€G\r\0\v@ \0 F\r\0 \vA€ rA€ G@A\0!A\0! \vA€ I@@ Aj! \vA€I \vAt!\v\r\0\v\v@ \bAj Atj" (\0 t6\0  ( t6  (\b t6\b  (\f t6\f  ( t6  ( t6  ( t6  ( t6 A\bj"A€G\r\0\v\v  \0kA\0!\nA\0!@ \bAj \nAtj(\0"\0@ \0A€ kK\r \0@ \bA\bj j \n \0ü\v\0\v \0Aq!\tA\0!A\0!@ \0AO@ \0A|q!\f@  jAt" \bAÐ(j"j ;\0 \bAé\0j" j \0;\0  Ar" jAt"\rj ;\0 \r j \0;\0  Ar" jAt"\rj ;\0 \bAé\0j \rj \0;\0  Ar" jAt"\rj ;\0 \bAé\0j \rj \0;\0 Aj" \fG\r\0\v \tE\r\v@  jAt"\f \bAÐ(jj ;\0 \bAé\0j \fj \0;\0 Aj! Aj" \tG\r\0\v\v \0 j!\v \nAj"\nA€G\r\0\v A€ G\r\0Aj"\0 J\r\0 \b (\0\0"6\0 A€€I\r\0 \b (\0"\t6 \tA€€I\r\0 \b (\0\b"\n6\b \nA€€I\r\0 \b (\0\f"\v6\f \vA€€I\r\0 Aj!A\0!@ \0 AkN\r\0 Aøÿÿÿq"E\r\0 Ak!@@  j"\0 Aÿq" \bA\bj"j-\0\0:\0\0 \0  \tAÿq"j-\0\0:\0 AA\0 At" \bAé\0j"j/\0 A\fvl \bAÐ(j" j/\0j"A€€I"\rj"AA\0  At"j/\0 \tA\fvl  j/\0j"A€€I"j"\tAA\0  \nAÿq"At"\fj/\0 \nA\fvl \f j/\0j"\nA€€I"j"\f-\0! \f-\0\0! \t-\0! \t-\0\0! -\0!\t -\0\0!  \vAÿq"At"j/\0!  j/\0! -\0! -\0\0! \0  j-\0\0:\0 \0  j-\0\0:\0 \0   Atr A\btr  \r"Aÿq"\rj-\0\0:\0 \0   Atr \tA\btr  "\tAÿq"j-\0\0:\0 \fAA\0   \vA\fvlj"A€€I"j"AA\0  \rAt"j/\0 A\fvl \bAÐ(j j/\0j"A€€I"\rj"AA\0  At"\vj/\0 \tA\fvl \v j/\0j"\tA€€I"j"\vAA\0  \nAtr A\btr \n "\nA\fv  \nAÿq"At"\nj/\0l \n j/\0j"\nA€€I"j"\f-\0! \f-\0\0 \v-\0! \v-\0\0! -\0! -\0\0!   Atr A\btr  "Aÿq"\vAt"j/\0  j/\0 -\0! -\0\0 \0  j-\0\0:\0 \0 \v j-\0\0:\0 Atr A\btr  \r! A\fvlj"\0Atr A\btr \0 \0A€€I"\0!\v  \tAtr A\btr \t !\t  \nAtr A\btr \n !\n A\bj! \fAA\0 \0j" O\r\0  I\r\v\v \b \v6\f \b \n6\b \b \t6 \b 6\0\v  M@ !\f\v@ \b AqAtr"\0 \0(\0"A\fv Aÿq"At" \bAé\0jj/\0l \bAÐ(j j/\0j"6\0  j \bA\bj j-\0\0:\0\0@ AÿÿK\r\0 Aj O\r\0 \0 -\0\0 Atr -\0A\btr6\0 Aj!\v Aj" G\r\0\v !\f\v \vA\0!\v \bAЩj$\0 \vë\t#\0A€\bk"\n$\0@@@ E\r\0A!@  \nj \0 j-\0\0"\b:\0\0 Aj! \b \tj!\t@  \bG\r\0A!\v Aj" O\r  \0 j-\0\0"l \tj!\t E\r\0  \tH\r\0@ AÿJ\r  \nj \b:\0\0 Aj! Ak"\r\0\v\v A€\bN\r Aj!  \tL\r \b!  K\r\0\v\vA!\vA\0!A\0!@A\0!  \f"\0L\r@@ \0Aj!\f  \0 \nj-\0\0"\bj! \bAÿG\r\0  \f"\0J\r\v\v \bAÿF\r@ E\r\0  L\r\0@  Atj 6\0 Aj! Ak"E\r  J\r\0\v\v Aj!  J\r\0\v !\v\f\vA!\v\v \nA€\bj$\0 \v\vÚ#\0A@j"B\x007 B\x007( B\x0070 B\x0078@@@@ @ Aq!@ AO@ A|q!\b@ A j"\v  \nAtj"\f/\0Atj"\t \t/\0Aj;\0 \f/At \vj"\t \t/\0Aj;\0 \f/At \vj"\t \t/\0Aj;\0 \f/At \vj"\t \t/\0Aj;\0 \nAj"\n \bG\r\0\v E\r\v@ A j  \nAtj/\0Atj"\t \t/\0Aj;\0 \nAj!\n Aj" G\r\0\v\v (\0!\n />"\r@A!\v\f\v /<E\rA!\vA\0!\r\f\v (\0!\n\vA\0!\r /:@A\r!\v\f\v /8@A\f!\v\f\v /6@A\v!\v\f\v /4@A\n!\v\f\v /2@A\t!\v\f\v /0@A\b!\v\f\v /.@A!\v\f\v /,@A!\v\f\v /*@A!\v\f\v /(@A!\v\f\v /&@A!\v\f\v /$@A!\v\f\v /""@A!\fA!\vA!\nA\0\f\v  (\0"\0Aj6\0 \0AÀ6\0  (\0"\0Aj6\0 \0AÀ6\0A!\f\f\v \n \v \n \vI!A!\n@@ A j \nAtj/\0\r \nAj"\n \vG\r\0\v \v!\n\v  \n  \nK!\f /"!A\v!A!\t AÿÿqAK\rA AtkAþÿq /$"k"\bA\0H\r \bAt /&"k"\bA\0H\r \bAt /("k"\bA\0H\r \bAt /*"k"\bA\0H\r \bAt /,"k"\bA\0H\r \bAt /."k"\bA\0H\r \bAt /0"k"\bA\0H\r \bAt /2"k"\bA\0H\r \bAt /4"k"\bA\0H\r \bAt /6"k"\bA\0H\r \bAt /8"k"\bA\0H\r \bAt /:"k"\bA\0H\r \bAt /<"k"\bA\0H\r \bAt"\b \rI\r \b \rGA\0 \0E r\rA\0!\t A\0;  ;   j";   j";\b   j";\n   j";\f   j";   j";   j";   j";   j";   j";   j";   j";   j;@ E\r\0 AG@ Aq A~q!\b@  \tAtj/\0"@  Atj" /\0"Aj;\0  Atj \t;\0\v  \tAr"Atj/\0"@  Atj" /\0"Aj;\0  Atj ;\0\v \tAj"\t \bG\r\0\vE\r\v  \tAtj/\0"E\r\0   Atj/\0Atj \t;\0\vA!A\0!A\0!A\0!A\0!@@@ \0Ak\0\vA!\t \fA\tK\rA!Aàä\0!A ä\0!A!\f\vA!\t \fA\tK\rAàå\0!A å\0!A!A\0!\vA \ft"Ak! (\0!A\0! \f!A\0!A\0!\rA!\b@A t!@@A\0   Atj/\0"AjK\r\0  I@A\0!Aà\0\f\v   kAt"\0j/\0! \0 j-\0\0\v!A \n k"t!\t  \r vAtj!\0 !@ \0  \tj"Atj" ;  :\0  :\0\0 \r\0\vA \nAkt!\t@ \t"\0Av!\t \0 \rq\r\0\v A j \nAtj" /\0Ak";\0 \0Ak \rq \0jA\0 \0!\r Aj! AÿÿqE@ \n \vF\r   Atj/\0Atj/\0!\n\v \n \fM\r\0 \r q"\0 \bF\r\0\vA \n  \f "k"t! \n \vI@ \v k!\b \n!\t@@  A j \tAtj/\0k"A\0L\r At! Aj" j"\t \vI\r\0\v \b!\vA t!\vA!\t   j"AÔKq\r  AÐKq\r (\0" \0Atj"\t \f:\0 \t :\0\0 \t  Atj" kAv; \0!\b\f\v\v \r@  \rAtj"\0A\0; \0 :\0 \0AÀ\0:\0\0\v  (\0 Atj6\0\v  \f6\0A\0!\t\v \t\v\t\0  l\b\vÊ \0(\b"@ \v \0(\f"@ (@A\0!@ (\b Atj(\0 Aj" (I\r\0\v\v (\b \v \0(ˆA\0J@ \0Aj!A\0!@  Alj(\0 Aj" \0(ˆAtH\r\0\v\vA\0! \0(”ˆA\0J@@ \0(\0 A\flj(\b Aj" \0(”ˆH\r\0\v\v \0\t\vì@@@@ Aä\0O@ AÎ\0O@ AÀ„=O@ A€Â×/O@ A€”ëÜI\r \0 A€”ëÜn"A€ì”£|l j"A€Â×/n"A0j:\0 \0Aj\f\v A€­âO@ \0 A€­ân"A0r:\0\0 \0!\f\v \0 AÀ„=n"A0j:\0\0 \0Aj\f\v A O@ \0 A n"A0r:\0\0 \0!\f\v \0 AÎ\0n"A0r:\0\0 \0Aj\f\v AèO@ \0! AÿÿqAèn\f\b\v \0 AÿÿqAä\0n"A0r:\0\0 \0Aj\f\b\v A\nO@ \0 AÿqA\nn"A0r:\0\0 \0!\f\t\v \0 E\r\t \0 A0r:\0\0 \0Aj \0k\v A€Â×/n"! \0Aj\v! \0 A0r:\0\0  A€¾¨Pl j"A€­ân"A0j:\0\0\v  A€Ó{l j"AÀ„=n"A0j:\0 Aj\v" AÀûBl j"A n"A0j:\0\0\v  Aàòyl j"AÎ\0n"A0j:\0 Aj\v! Að±l j"Aèn\v!  A0j:\0\0  A˜xl j"Aä\0n"A0j:\0 Aj\v" Aœl j"A\nn"A0j:\0\0\v  Aöl jA0j:\0 Aj\v \0k\vÛ@@@@@@@@@@ Ak\t\b\0\t\v \0 A€Â×/n"A0j:\0\0 \0Aj!\0 A€¾¨Pl j!\v \0 A€­ân"A0j:\0\0 \0Aj!\0 A€Ó{l j!\v \0 AÀ„=n"A0j:\0\0 \0Aj!\0 AÀûBl j!\v \0 A n"A0j:\0\0 \0Aj!\0 Aàòyl j!\v \0 AÎ\0n"A0j:\0\0 \0Aj!\0 Að±l j!\v \0 Aèn"A0j:\0\0 \0Aj!\0 A˜xl j!\v \0 Aä\0n"A0j:\0\0 \0Aj!\0 Aœl j!\v \0 A\nn"A0j:\0\0 \0Aj!\0 Avl j!\v \0 A0j:\0\0\v \v‰#\t~#\0A k"\r$\0@ E\r\0 \0 j!@@@@@@@@@ \0-\0\0"A\bq@ \0Aj!\v@ AN@ \0,\0"Aÿ\0q!\f A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q \fAtr!\f A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q \fAtr!\f A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q \fAtr!\f A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q \fAtr!\f A\0N@ \0Aj!\f\v \0-\0Aÿ\0q \fAtr!\f \0Aj!\f\v AF\r\t \v,\0\0"A\0N\r \v!@ ,\0\0"Aÿ\0q \fAtr!\f Aj! A\0N\r  I\r\0\v\v  \vk!\f\b\v \0Aj!\b AqE@@ AN@ \0,\0"Aÿ\0q! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0-\0Aÿ\0q Atr! \0Aj!\f\vA\0 AF\r \b,\0\0"\0A\0N\r \b!@ ,\0\0"\0Aÿ\0q Atr! Aj! \0A\0N\r  I\r\0\v\v  \bk\f\v E\r Ak!\n (\0!\f\vA! !\f\f\v \0!A\v"\0 \bj!\b  \0Asj!\n E@  6\0 \b"\fE\r\t \f! (\0\f\v (\0 I\r\v  6\0 \v! AÀ\0q!A\0!\0@@@@@ À"A\0H\r\0 \r\0 \f\v \b"\0E@A\0!A\0!\0\f\b\vA\0! A\0H"\r A\0 ! \0A\0 \v! \rB\x007\b \rB\x007\0 \f\v \rB\x007\b \rB\x007\0 \nE\r@A\0 \b-\0\0"A€ "\vAI\r\0A\b \vAF\r\0A \vAI\r\0A!A! \vAK\rA\v!A! \nAF\r@@  \rj  \bj-\0\0:\0\0 Aj! Aj" \vO\r\0  \nI\r\v\v  \vIA\0!\r AÿqE\r\v \b Aÿq"j"  \rAj*!\v  \r("I\r  \0  \0 !  \vj!\b \n  \vjk!\n ­! \0\v!\v Aq! E@A\0!A\0! !A\0!\f\v@@@ @@  \bkAN@ \b,\0\0"Aÿ\0q! A\0N@ \bAj!\f\v \b,\0"Aÿ\0q Atr! A\0N@ \bAj!\f\v \b,\0"Aÿ\0q Atr! A\0N@ \bAj!\f\v \b,\0"Aÿ\0q Atr! A\0N@ \bAj!\f\v \b,\0"Aÿ\0q Atr! A\0N@ \bAj!\f\v \b-\0Aÿ\0q Atr! \bAj!\f\vA\0!A\0 \b O\r \b,\0\0"A\0N\r \b!@ ,\0\0"Aÿ\0q Atr! Aj! A\0N\r  I\r\0\v\v  \bk\f\v !A\v" \bj"kAN@ ,\0\0"Aÿ\0q! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v -\0Aÿ\0q Atr! Aj!\f\vA\0!  O\r ,\0\0"A\0N\r !@ ,\0\0"\tAÿ\0q Atr! Aj! \tA\0N\r  I\r\0\v\v  k\f\v !A\v  K\r j!\v \b j! Aq@A\0! Av"  k"  K"!\f\v \b@@  kAN@ ,\0\0"Aÿ\0q! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v -\0Aÿ\0q Atr! Aj!\f\vA\0!A\0  O\r ,\0\0"A\0N\r !@ ,\0\0"\tAÿ\0q Atr! Aj! \tA\0N\r  I\r\0\v\v  k\f\v !A\v j"j! \n k!A\0! Av"!     &    \v"! \r\vA\0!\f\v \n  j"I\r \n k!\n  \bj!\b\v@ \nE@A\0!\f\v A q@  \nK\r  (\0K\r E\r  \b ü\n\0\0\f\v \b \n  AA Aq"\bAA \b \0"E\r\v @ E\r \r 5\x007  -\0\0"\bA€ \b"M\r ­! Aj" j!  Asj­!" \rAj!A\0!\b#\0A€\bk"\n$\0 \nA\0A€\bü\v\0@ "E\r\0 ­!! AO@@@ !B}"#Bˆ"P@\f\v B|Bþÿÿÿÿÿÿÿÿ\0ƒ!@ \n  §j"-\0\0AtjA6\0 \n -\0AtjA6\0 \n -\0AtjA6\0 \n -\0AtjA6\0 \n -\0AtjA6\0 \n -\0AtjA6\0 \n -\0AtjA6\0 \n -\0AtjA6\0 B\b|! B|" R\r\0\v #BƒB\0R\r\v \n  §j"-\0\0AtjA6\0 \n -\0AtjA6\0 \n -\0AtjA6\0 \n -\0AtjA6\0 B|!\v AqE\r\v !Bƒ!@ \n  §j-\0\0AtjA6\0 B|! B|" R\r\0\v\v \v!@@ P\r\0  (\0j!  §j! E@A\0!\t@  O\r@@@ \n -\0\0"Atj(\0E\r\0 \t,\0\0"Aÿ\0q! A\0N@ \tAj!\t \r\f\v \t,\0"Aÿ\0q Atr! A\0N@ \tAj!\t \r\f\v \t,\0"Aÿ\0q Atr! A\0N@ \tAj!\t \r\f\v \t,\0"Aÿ\0q Atr! A\0N@ \tAj!\t \r\f\v \t,\0"Aÿ\0q Atr! A\0N@ \tAj!\t \r\f\v \t-\0 \tAj!\tAÿ\0q Atr"\r\v  :\0\0 !\f\v  j" O\r Aj"E\r\0   ü\v\0\v Aj! Aj" I\r\0\v\f\v  "§j!@  O\r@@ \n -\0\0"Atj(\0E\r\0@  kAN@ ,\0\0"Aÿ\0q!\t A\0N@ Aj!\f\v ,\0"Aÿ\0q \tAtr!\t A\0N@ Aj!\f\v ,\0"Aÿ\0q \tAtr!\t A\0N@ Aj!\f\v ,\0"Aÿ\0q \tAtr!\t A\0N@ Aj!\f\v ,\0"Aÿ\0q \tAtr!\t A\0N@ Aj!\f\v -\0Aÿ\0q \tAtr!\t Aj!\f\v  O\rA\0!\t ",\0\0"A\0N@ !\tA\f\v@ ,\0\0"Aÿ\0q \tAtr!\t Aj! A\0N\r  I\r\0\v\v  k\v j! \tE\r\0  \tj" O\r \tAj"E@ !\f\v   ü\v\0 !\f\v  :\0\0\v Aj! Aj" I\r\0\v\v   \vk¬7\0 \v!\b\v \nA€\bj$\0 \bE\r \r(! A\0!\v A\0H@ \v ­"    AF"  \r(E\r §!\v \0@ \0\v  6\0\f\vA\0!A\0!\0\v  \f \0\f\v Aj" O\r \0 j-\0\0"E\r@ E@ \fAþÿÿÿK\r \f\b"E\r  \f6\0 !\f\v \f (\0G\r\v Aj!\b \f \f n" lk!@ \nAt"\t \rA\bj"\vj   \nKj6\0A\0! \rAj" \tj \n \v \tAk"j(\0  j(\0jA\0\v6\0 \0 \bj! \rAj \tj!\t@  \bkAN@ ,\0\0"Aÿ\0q! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v -\0Aÿ\0q Atr! Aj!\f\v  \bM@ \tA\x006\0A\0\f\v ",\0\0"\vA\0N@ \t \v6\0 \v!A\f\v@ ,\0\0"\vAÿ\0q Atr! Aj! \vA\0N\r  I\r\0\v\v \t 6\0  k\v \bj"\b K\r Ak O\r  ­|! \nAj"\n G\r\0\v  \b­|" ­V\r \f\b"E\r §!A\0!@ \r At"\v \rA\bjj(\0"6œ  \bI\r \0 \bj  \bk  \rAj" \vj(\0j \rAœjE\r \r(œ G\r \rAj \vj(\0 \bj!\b Aj" G\r\0\v   \f  \'   \f6\0\v !\f\v  A\0!\f\v A\0!\v \rA j$\0 \vY \0 \0(H"Ak r6H \0(\0"A\bq@ \0 A r6\0A\v \0B\x007 \0 \0(,"6 \0 6 \0  \0(0j6A\0\vä>~#\0A°k"$\0@ E\r\0 \0 j!\n@ @@ \0-\0\0"\bA\bq@ \0Aj!@ AN@ \0,\0"Aÿ\0q! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0-\0Aÿ\0q Atr! \0Aj!\f\v AF\r ,\0\0"A\0N\r !@ ,\0\0"Aÿ\0q Atr! Aj! A\0N\r  \nI\r\0\v\v  k!\f\v \0Aj!@ \bAq"E@ AN@ \0,\0"Aÿ\0q! \0Aj k A\0N\r \0,\0"Aÿ\0q Atr! \0Aj k A\0N\r \0,\0"Aÿ\0q Atr! \0Aj k A\0N\r \0,\0"Aÿ\0q Atr! \0Aj k A\0N\r \0,\0"Aÿ\0q Atr! \0Aj k A\0N\r \0-\0Aÿ\0q Atr! \0Aj k\f\v AG@ ,\0\0"\0A\0H@ !@@ ,\0\0"\0Aÿ\0q Atr! Aj! \0A\0N\r\0  \nI\r\v\v  k\f\vA! \0!\v  j!\0  Asj! E\r\f\v (\0!A\0\v! AþÿÿÿK\r A E\r  j!\0  Asj! \r\v  6\0 \b"E\r ! (\0\f\vA! !\f\v (\0 I\r  6\0 ! \v"6 A\0!@@ \bÀ"A\0N@ B\x007 B\x007 A\x006\f \f\v \b"E\r B\x007 B\x007 A\x006\f Aj!A\0!@ E\r\0@ A\0 \0-\0\0"A€ "AI\r\0A\b AF\r\0A AI\r\0 AO\rA\v6\fA! AF\r@@  j \0 j-\0\0:\0\0 Aj! Aj" O\r\0  K\r\v\v A\0  O!\f\vA! A6\f\v Aÿq"E\r \0 j"\0 \n A \bj*! ( \b" ( K\r  6  \0 j!\0   jk! ­!! \v!@ @ \bA q@  K\r  (\0K\r E\r  \0 ü\n\0\0\f\v \bAq@  A j \0 )E\r\f\v \bAq! \bAÀ\0q@ AF@ !\b ! ! \0"-\0\0!\0A\0A€ \v"E\r\0 \0A€ \0"\0Aüq!\t \0Aq!\vA\0 \0kAq!\f \0AkAI!\r \0AýkAI!@  A\blj"\nA\bj!A\0!A\0!@ \rE@@  Atj"A;\0  ;  Ar"Atj"A;\0  ;  Ar"Atj"A;\0  ;  Ar"Atj"A;\0  ; Aj" \tG\r\0\v ! \vE\r\vA\0!@  "Atj"A;\0  ; Aj! Aj" \vG\r\0\v\v@ AþK\r\0A\0! \0! \f@@  Atj"A\0;\0  ; Aj! Aj" \fG\r\0\v\v \r\0@  Atj"A\0;\0  ;  Aj"Atj"A\0;\0  ;  Aj"Atj"A\0;\0  ;  Aj"Atj"A\0;\0  ; Aj! AÿG\r\0\v\v \n \x006\0 \nAïÿ6 \nAïÿ6Œ\b \nA\0;ˆ\b Aj"A€G\r\0\vA\0!A°À\v"E@ \tA\0\f\v@  A˜\blj"\0A; \0A;\b \0A€€6\n \0B€ˆ€€À7 \0A\bj!A!@  Atj"A\0;\0  ;  Ar"Atj"\nA\0;\0 \n ; A€G@  Ar"Atj"\nA\0;\0 \n ;  Ar"Atj"\nA\0;\0 \n ; Aj!\f\v\v \0B„€€€ðý?7\0 \0Aïÿ6”\b \0A\0;\b Aj"A‚G\r\0\vA\0!\t  \bj"!\0 \bAO@ (\0"\0 \0AxsA€þƒxqA\bv \0A\bxs!\t Aj!\0\v @  \bj!\b Ak! Aj!A\0!A!A\0!@ !\n@@   AÿqA\blj"\f(\0"AkM@A\0!\f\v \t  n"n"AïÿM\r\0A\0!\f\vA\0! \fA\bj"\r!@ "Aj! "\v /\0"j" M\r\0\v  \rkA€\bJ@A\0!\f\v \t  \vlk!\t@  l"AÿÿÿK\r\0 \0 O@A!\f\v@@ A\bt! \0Aj! \0-\0\0 \tA\btr!\t A€€O\r ! "\0 \bG\r\0\v \b!\0A!\f\v !\0 !\v  Aj";\0 \f Aj"6\0@ AðÿI\r\0A\0! \fA\x006\0 \f/\b"E\r\0@ \r  AþÿqAvk";\0  Aÿÿqj! \r/! \rAj!\r \r\0\v \f 6\0 /\0!\v /! Ak"/\0 AÿÿqO\r\0  (\x006\0  ;\0 Ak ;\0\v  \nj :\0\0A\0! Aÿq"!@ !\v@@   A˜\blj"(\0"AkM@A\0!\f\v \t  n"n"AïÿM\r\0A\0!\f\vA\0! A\bj"\r!@ "Aj! "\f /\0"j" M\r\0\v  \rkAˆ\bJ@A\0!\f\v \t  \flk!\t@  l"AÿÿÿK\r\0 \0 O@A!\f\v@@ A\bt! \0Aj! \0-\0\0 \tA\btr!\t A€€O\r ! "\0 \bG\r\0\v \b!\0A!\f\v !\0 !\v  Aj";\0  Aj"6\0@ AðÿI\r\0A\0! A\x006\0 /\b"E\r\0@ \r  AþÿqAvk";\0  Aÿÿqj! \r/! \rAj!\r \r\0\v  6\0 /\0!\v /! Ak"/\0 AÿÿqO\r\0  (\x006\0  ;\0 Ak ;\0\v \v Aÿÿq"j! AF@A€  AHj  F!  I\r\v\v \nAj!@ E\r\0  O\r\0  \vjAk"  \nk"  I"Aj"@ \n j  ü\v\0\v  \njAj!\v  I\r\0\v A\0 A\0N!\v \t \t \v"E\r\f\v ! !\b !A\0!A\0!#\0A\bk"$\0 \0"-\0\0"\0A€ \0"\0Aq!\n A\bj!@ \0AkAO@ \0Aüq!\v@  Atj"A;\0  ;  Ar"Atj"\fA;\0 \f ;  Ar"Atj"\fA;\0 \f ;  Ar"Atj"\fA;\0 \f ; Aj" \vG\r\0\v \nE\r\v@  "Atj"A;\0  ; Aj! Aj" \nG\r\0\v\v@ AþK\r\0A\0!A\0 \0"kAq"@@  Atj"\nA\0;\0 \n ; Aj! Aj" G\r\0\v\v \0AýkAI\r\0@  Atj"A\0;\0  ;  Aj"Atj"A\0;\0  ;  Aj"Atj"A\0;\0  ;  Aj"Atj"A\0;\0  ; Aj! AÿG\r\0\v\v  \x006\0 Aïÿ6 Aïÿ6Œ\bA\0!\0 A\0;ˆ\bA°À\v"@@  \0A˜\blj"A; A;\b A€€6\n B€ˆ€€À7 A\bj!A!@  Atj"\nA\0;\0 \n ;  Ar"\nAtj"\vA\0;\0 \v \n; A€G@  Ar"\nAtj"\vA\0;\0 \v \n;  Ar"\nAtj"\vA\0;\0 \v \n; Aj!\f\v\v B„€€€ðý?7\0 Aïÿ6”\b A\0;\b \0Aj"\0A‚G\r\0\v  j"!\0 AO@ (\0"\0 \0AxsA€þƒxqA\bv \0A\bxs!\r Aj!\0\v   j! Ak! \bAj!A\0!A!@ !\n@@  (\0"\fAkM@A\0!\t\f\v \r  \fn"n"\tAïÿM\r\0A\0!\f\vA\0! !@ "Aj! "\v /\0"j" \tM\r\0\v  kA€\bJ@A\0!\f\v \r  \vlk!\r@  l"AÿÿÿK\r\0 \0 O@A!\f\v@@ A\bt! \0Aj! \0-\0\0 \rA\btr!\r A€€O\r ! "\0 G\r\0\v !\0A!\f\v !\0 !\v  Aj"\v;\0  \fAj"6\0@ AðÿI\r\0A\0!\t A\x006\0 ! /\b"E\r\0@   AþÿqAvk";\0 \t Aÿÿqj!\t /! Aj! \r\0\v  \t6\0 /\0!\v\v /! Ak"/\0 \vAÿÿqO\r\0  (\x006\0  \v;\0 Ak ;\0\v \b \nj :\0\0A\0! Aÿq" !@ !\v@@   A˜\blj"(\0"AkM@A\0!\t\f\v \r  n"n"\tAïÿM\r\0A\0!\f\vA\0! A\bj"!@ "Aj! "\f /\0"j" \tM\r\0\v  kAˆ\bJ@A\0!\f\v \r  \flk!\r@  l"AÿÿÿK\r\0 \0 O@A!\f\v@@ A\bt! \0Aj! \0-\0\0 \rA\btr!\r A€€O\r ! "\0 G\r\0\v !\0A!\f\v !\0 !\v  Aj"\t;\0  Aj"6\0@ AðÿI\r\0A\0! A\x006\0 /\b"E\r\0@   AþÿqAvk";\0  Aÿÿqj! /! Aj! \r\0\v  6\0 /\0!\t\v /! Ak"/\0 \tAÿÿqO\r\0  (\x006\0  \t;\0 Ak ;\0\v \v Aÿÿq"j! AF@A€  AHj  F!  I\r\v\v \nAj!@ E\r\0  O\r\0  \vjAk"  \nk"  I"Aj"@ \n j  ü\v\0\v  \njAj!\v  I\r\0\v \bA\0 A\0N \b\v!\0 \t\v A\bj$\0 \0"E\r\f\v AF@ \0!\b ! ! !\nA\0A€ \v"E\r\0 \0-\0\0"\0A€ \0"Aüq! Aq!\tA\0 kAq!\r AkAI! AýkAI!A\0!@  A\blj"\vA\bj!A\0!A\0!\0@ E@@  \0Atj"A;\0  \0;  \0Ar"Atj"A;\0  ;  \0Ar"Atj"A;\0  ;  \0Ar"Atj"A;\0  ; \0Aj"\0 G\r\0\v \0! \tE\r\vA\0!\0@  "Atj"A;\0  ; Aj! \0Aj"\0 \tG\r\0\v\v@ AþK\r\0A\0! !\0 \r@@  \0Atj"A\0;\0  \0; \0Aj!\0 Aj" \rG\r\0\v\v \r\0@  \0Atj"A\0;\0  \0;  \0Aj"Atj"A\0;\0  ;  \0Aj"Atj"A\0;\0  ;  \0Aj"Atj"A\0;\0  ; \0Aj!\0 AÿG\r\0\v\v \v 6\0 \vAïÿ6 \vAïÿ6Œ\b \vA\0;ˆ\b Aj"A€G\r\0\vA\0! \b j"! AO@ \b(\0"\0 \0AxsA€þƒxqA\bv \0A\bxs!\f \bAj!\v \n@A!A\0!A\0!@A\0!\0@@   AÿqA\blj"\t(\0"AkM@A\0!\f\v \f  n"n"AïÿM\r\0A\0!\f\v \tA\bj"\r!@ "Aj! \0"\v /\0"j"\0 M\r\0\v  \rkA€\bJ@A\0!\f\v \f  \vlk!\f@  l"AÿÿÿK\r\0  O@A!\f\v \b j!@@ A\bt!\0 Aj! -\0\0 \fA\btr!\f A€€O\r \0! " G\r\0\v !A!\f\v ! \0!\v  Aj";\0 \t Aj"\x006\0@ \0AðÿI\r\0A\0! \tA\x006\0 \t/\b"\0E\r\0@ \r \0 \0AþÿqAvk"\0;\0  \0Aÿÿqj! \r/!\0 \rAj!\r \0\r\0\v \t 6\0 /\0!\v /! Ak"\0/\0 AÿÿqO\r\0  \0(\x006\0 \0 ;\0 Ak ;\0\v  j :\0\0 Aj" \nG\r\0\v A\0 A\0N!\v \t \v"E\r\f\v ! !\b !\nA\0!A\0!#\0A\bk"\f$\0 \0"-\0\0"\0A€ \0"Aq! \fA\bj!@ AkAO@ Aüq!\v@  Atj"\0A;\0 \0 ;  Ar"\0Atj"\tA;\0 \t \0;  Ar"\0Atj"\tA;\0 \t \0;  Ar"\0Atj"\tA;\0 \t \0; Aj" \vG\r\0\v E\r\v@  "\0Atj"A;\0  \0; \0Aj! Aj" G\r\0\v\v@ \0AþK\r\0A\0!\0A\0 "kAq"@@  Atj"A\0;\0  ; Aj! \0Aj"\0 G\r\0\v\v AýkAI\r\0@  Atj"\0A\0;\0 \0 ;  Aj"\0Atj"A\0;\0  \0;  Aj"\0Atj"A\0;\0  \0;  Aj"\0Atj"A\0;\0  \0; Aj! \0AÿG\r\0\v\v \f 6\0 \fAïÿ6 \fAïÿ6Œ\bA\0!\t \fA\0;ˆ\b  j"! AO@ (\0"\0 \0AxsA€þƒxqA\bv \0A\bxs!\t Aj!\v \n@A!@@@  \f(\0"AkM@A\0!\r\f\v \t  n"n"\rAïÿM\r\0A\0!\0\f\vA\0!\0 !@ "Aj! \0"\v /\0"j"\0 \rM\r\0\v  kA€\bJ@A\0!\0\f\v \t  \vlk!\t@  l"AÿÿÿK\r\0  O@A!\f\v  j!\v@@ A\bt!\0 Aj! -\0\0 \tA\btr!\t A€€O\r \0! " \vG\r\0\v \v!A!\f\v ! \0!\v  Aj"\v;\0 \f Aj"\x006\0@ \0AðÿI\r\0A\0!\r \fA\x006\0 !\0 \f/\b"E\r\0@ \0  AþÿqAvk";\0 \r Aÿÿqj!\r \0/! \0Aj!\0 \r\0\v \f \r6\0 /\0!\v\v /!\0 Ak"/\0 \vAÿÿqO\r\0  (\x006\0  \v;\0 Ak \0;\0\v \b j \0:\0\0 Aj" \nG\r\0\v \bA\0 A\0N!\b\v \fA\bj$\0 \b"E\r\f\v A\x006 \v A\0H@  5 ""  " ! (\f"\0AF"! \0 Aj(E\r !§\f\v ( \v!\0 @ \v  \x006\0\f\v !\v  A\0!\f\vA\0! Aj" O\r\0 \0 j-\0\0"E\r\0@ E@ AþÿÿÿK\r \b"E\r  6\0 !\f\v  (\0G\r\v Aj!   n"\f lk!\t@@ At" A \bj"j \f \t Kj6\0 A j" j   Ak"\bj(\0  \bj(\0jA\0\v6\0 \0 j!\b A j j!\v@  kAN@ \b,\0\0"Aÿ\0q! A\0N@ \bAj!\f\v \b,\0"Aÿ\0q Atr! A\0N@ \bAj!\f\v \b,\0"Aÿ\0q Atr! A\0N@ \bAj!\f\v \b,\0"Aÿ\0q Atr! A\0N@ \bAj!\f\v \b,\0"Aÿ\0q Atr! A\0N@ \bAj!\f\v \b-\0Aÿ\0q Atr! \bAj!\f\v  M@A\0! \vA\x006\0A\0\f\vA\0! \b",\0\0"A\0N@ \v 6\0 !A\f\v@ ,\0\0"Aÿ\0q Atr! Aj! A\0N\r  \nI\r\0\v\v \v 6\0  \bk\v j" K\r Ak O\r ! ­|!! Aj" G\r\0\v ! ­|"! ­V\r\0 \b"E\r\0 !§!A\0!@@  At"\b A \bjj(\0"6¬  I\r \0 j  k  A j" \bj(\0j A¬jE\r (¬ G\r A j \bj(\0 j! Aj" G\r\0\v     \'   6\0 !\f\v  A\0!\f\v A\0!\v A°j$\0 \v}@@ \0"AqE\r\0 -\0\0E@A\0\v@ Aj"AqE\r -\0\0\r\0\v\f\v@ "Aj!A€‚„\b (\0"k rA€‚„xqA€‚„xF\r\0\v@ "Aj! -\0\0\r\0\v\v  \0k\v/\0@ Aÿ\0M\r\0 A€qA€¿F\r\0A°þ\0A6\0A\v \0 :\0\0A\v´\0@@@@@@@@@@@ A\tk\0\b\t\n\b\t\n\t\n\n\b\t\v  (\0"Aj6\0 \0 (\x006\0\v  (\0"Aj6\0 \0 2\x007\0\v  (\0"Aj6\0 \0 3\x007\0\v  (\0"Aj6\0 \0 0\0\x007\0\v  (\0"Aj6\0 \0 1\0\x007\0\v  (\0AjAxq"A\bj6\0 \0 +\x009\0\v\0\v\v  (\0"Aj6\0 \0 4\x007\0\v  (\0"Aj6\0 \0 5\x007\0\v  (\0AjAxq"A\bj6\0 \0 )\x007\0\vo \0(\0",\0\0A0k"A\tK@A\0\v@A! A̙³æ\0M@A  A\nl"j  AÿÿÿÿsK!\v \0 Aj"6\0 ,\0 ! !A0k"A\nI\r\0\v \v“~#\0A@j"$\0  6< A)j! A\'j! A(j!@@@@@A\0!@ !\v  \fAÿÿÿÿsJ\r  \fj!\f@@@@ "-\0\0"\n@@@@ \nAÿq"E@ !\f\v A%G\r !\n@ \n-\0A%G@ \n!\f\v Aj! \n-\0 \nAj"!\nA%F\r\0\v\v  \vk" \fAÿÿÿÿs"J\r\t \0@ \0 \v \r\v \r  6< Aj!A!@ ,\0A0k"A\tK\r\0 -\0A$G\r\0 Aj!A! !\v  6<A\0!\t@ ,\0\0"\nA k"AK@ !\f\v !A t"A‰ÑqE\r\0@  Aj"6<  \tr!\t ,\0"\nA k"A O\r !A t"A‰Ñq\r\0\v\v@ \nA*F@@ ,\0A0k"A\tK\r\0 -\0A$G\r\0 \0E@  AtjA\n6\0A\0\f\v  Atj(\0\v!\r Aj!A\f\v \r Aj! \0E@  6<A\0!A\0!\r\f\v  (\0"Aj6\0 (\0!\rA\0\v!  6< \rA\0N\rA\0 \rk!\r \tA€À\0r!\t\f\v A<j"\rA\0H\r\n (<!\vA\0!A!\bA\0 -\0\0A.G\r\0 -\0A*F@@ ,\0A0k"A\tK\r\0 -\0A$G\r\0 Aj! \0E@  AtjA\n6\0A\0\f\v  Atj(\0\v\f\v \r Aj!A\0 \0E\r\0  (\0"Aj6\0 (\0\v!\b  6< \bA\0N\f\v  Aj6< A<j!\b (<!A\v!@ !A! ",\0\0"Aû\0kAFI\r\v Aj! A:l jAïø\0j-\0\0"AkAÿqA\bI\r\0\v  6<@ AG@ E\r\f A\0N@ \0E@  Atj 6\0\f\f\v   Atj)\x0070\f\v \0E\r\b A0j  \f\v A\0N\r\vA\0! \0E\r\b\v \0-\0\0A q\r\v \tAÿÿ{q"\n \t \tA€À\0q!\tA\0!Aý\n! !@@@@@@@@@@@@@@@ -\0\0"À"ASq  AqAF  "AØ\0k!\t\n\0\v@ AÁ\0k\v\0\v AÓ\0F\r\v\f\v )0!Aý\n\f\vA\0!@@@@@@@ \b\0\v (0 \f6\0\f\v (0 \f6\0\f\v (0 \f¬7\0\f\v (0 \f;\0\f\v (0 \f:\0\0\f\v (0 \f6\0\f\v (0 \f¬7\0\f\vA\b \b \bA\bM!\b \tA\br!\tAø\0!\v ! )0""B\0R@ A q!\v@ Ak" §Aq-\0€} \vr:\0\0 Bˆ"B\0R\r\0\v\v !\v P\r \tA\bqE\r AvAý\nj!A!\f\v ! )0""B\0R@@ Ak" §AqA0r:\0\0 Bˆ"B\0R\r\0\v\v !\v \tA\bqE\r \b  k"  \bH!\b\f\v )0"B\0S@ B\0 }"70A!Aý\n\f\v \tA€q@A!Aþ\n\f\vAÿ\nAý\n \tAq"\v! ! "B€€€€Z@@ Ak" " B\n€"Bö~|§A0r:\0\0 BÿÿÿÿŸV\r\0\v\v §! B\nZ@@ Ak" "\v A\nn"AöljA0r:\0\0 \vAã\0K\r\0\v\v @ Ak" A0r:\0\0\v !\v\v  \bA\0Hq\r \tAÿÿ{q \t !\t@ B\0R\r\0 \b\r\0 !\vA\0!\b\f\v \b P  \vkj"  \bH!\b\f\r\v -\x000!\f\v\vAÿÿÿÿ \b \bAÿÿÿÿO"\t"A\0G!@@@ (0"Aü "\v"AqE\r\0 E\r\0@ -\0\0E\r Ak"A\0G! Aj"AqE\r \r\0\v\v E\r@ -\0\0E\r\0 AI\r\0@A€‚„\b (\0"k rA€‚„xqA€‚„xG\r Aj! Ak"AK\r\0\v\v E\r\v@  -\0\0E\r Aj! Ak"\r\0\v\vA\0\v" \vk \t " \vj! \bA\0N@ \n!\t !\b\f\f\v \n!\t !\b -\0\0\r\f\v\v )0"B\0R\rA\0!\f\t\v \b@ (0\f\vA\0! \0A \rA\0 \t\f\f\v A\x006\f  >\b  A\bj"60A!\b \v!\nA\0!@@ \n(\0"\vE\r\0 Aj \v"\vA\0H\r \v \b kK\r\0 \nAj!\n  \vj" \bI\r\v\vA=! A\0H\r\f \0A \r  \t\f E@A\0!\f\vA\0! (0!\n@ \n(\0"\vE\r Aj"\b \v"\v j" K\r \0 \b \v\r \nAj!\n  K\r\0\v\v \0A \r  \tA€À\0s\f \r   \rH!\f\b\v  \bA\0Hq\r\tA=! +0\0\v -\0!\n Aj!\f\0\v\0\v \0\r\t E\rA!@  Atj(\0"\0@  Atj \0 A!\f Aj"A\nG\r\f\v\v\v A\nO@A!\f\f\n\v@  Atj(\0\rA!\f Aj"A\nG\r\0\v\f\t\vA!\f\v  :\0\'A!\b !\v \n!\t\v \b  \vk"\n \b \nJ"\b AÿÿÿÿsJ\rA=! \r \b j"  \rH" K\r \0A   \t\f \0  \r \0A0   \tA€€s\f \0A0 \b \nA\0\f \0 \v \n\r \0A   \tA€À\0s\f (<!\f\v\v\vA\0!\f\f\vA=!\vA°þ\0 6\0\vA!\f\v A@k$\0 \f\vÁ@ ("  \r (\v ("k I@  \0  ($\0\v@@ (PA\0H\r\0 E\r\0 !@ \0 j"Ak-\0\0A\nG@ Ak"\r\f\v\v  \0  ($\0" I\r  k! (!\f\v \0!A\0!\v   #  ( j6  j!\v \v­\t\b \0Aÿÿq! \0Av!A!\0 AF@  -\0\0j"\0Añÿk \0 \0AðÿK"\0 j"At"A€€<j  AðÿK \0r\v @@@ AO@@ A¯+K@@AÛ! !\0@  \0-\0\0j" j  \0-\0j"j  \0-\0j"j  \0-\0j"j  \0-\0j"j  \0-\0j"j  \0-\0j"j  \0-\0j"j  \0-\0\bj"j  \0-\0\tj"j  \0-\0\nj"j  \0-\0\vj"j  \0-\0\fj"j  \0-\0\rj"j  \0-\0j"j  \0-\0j"j! \0Aj!\0 Ak"\r\0\v Añÿp! Añÿp! A°+j! A°+k"A¯+K\r\0\v E\r AM\r\v@  -\0\0j"\0 j \0 -\0j"\0j \0 -\0j"\0j \0 -\0j"\0j \0 -\0j"\0j \0 -\0j"\0j \0 -\0j"\0j \0 -\0j"\0j \0 -\0\bj"\0j \0 -\0\tj"\0j \0 -\0\nj"\0j \0 -\0\vj"\0j \0 -\0\fj"\0j \0 -\0\rj"\0j \0 -\0j"\0j \0 -\0j"j! Aj! Ak"AK\r\0\v E\r\v Aq"\r \f\v@ E\r\0 Aq" !\0@  \0-\0\0j" j! \0Aj!\0 Aj" G\r\0\v  j! A\fq \v!\0 AI\r\0 \0Ak"AqE@  -\0\0j"\0 -\0j" -\0j" -\0j"   \0 jjjj! Aj! !\0\v AI\r\0@  -\0\0j" -\0j" -\0j" -\0j" -\0j"\b -\0j"\t -\0j"\n -\0j" \n \t \b     jjjjjjjj! A\bj! \0A\bk"\0\r\0\v\v AñÿpAt Añÿk  AðÿKr\vA\0! !\0@  \0-\0\0j" j! \0Aj!\0 Aj" G\r\0\v  j! A\fq\v!\0 AI\r\0 \0Ak"AqE@  -\0\0j"\0 -\0j" -\0j" -\0j"   \0 jjjj! Aj! !\0\v AI\r\0@  -\0\0j" -\0j" -\0j" -\0j" -\0j"\b -\0j"\t -\0j"\n -\0j" \n \t \b     jjjjjjjj! A\bj! \0A\bk"\0\r\0\v\v Añÿp! Añÿp!\v At rA\v\v‡ A€O@ @ \0  ü\n\0\0\v\v \0 j!@ \0 sAqE@@ \0AqE@ \0!\f\v E@ \0!\f\v \0!@  -\0\0:\0\0 Aj! Aj"AqE\r  I\r\0\v\v A|q!\0@ AÀ\0I\r\0  \0A@j"K\r\0@  (\x006\0  (6  (\b6\b  (\f6\f  (6  (6  (6  (6  ( 6  ($6$  ((6(  (,6,  (060  (464  (868  (<6< A@k! A@k" M\r\0\v\v \0 M\r@  (\x006\0 Aj! Aj" \0I\r\0\v\f\v AI@ \0!\f\v AI@ \0!\f\v Ak! \0!@  -\0\0:\0\0  -\0:\0  -\0:\0  -\0:\0 Aj! Aj" M\r\0\v\v  I@@  -\0\0:\0\0 Aj! Aj" G\r\0\v\v\vG@@ \0-\0°‚AF@ \0Aj"\0A€G\r\f\v\v \0A°‚jA:\0\0 \0AtA\x006°ƒA¨‚ \x006\0\v\v#\0Ak"\0$\0 \0AÝ\0:\0@@A¨ý\0(\0" A˜ý\0\rA¨ý\0(\0\vA¬ý\0(\0"F\r\0Aèý\0(\0AÝ\0F\r\0A¬ý\0 Aj6\0 AÝ\0:\0\0\f\vA˜ý\0 \0AjAA¼ý\0(\0\0AG\r\0 \0-\0\v \0Aj$\0\vð#\0A€‰k"\b$\0@ AI\r\0 AþÿÿÿK\r\0@@ E@ \b"! E\r\v \0 j! \bA€jA\0A€\bü\v\0 \0Aj! \0-\0\0!@@ \bA€j AtjA6\0@@ E@ Aj"\n -\0\0"F\r Aj!A\0!\f\v AþL@ Aj! Ak!\f\v\f\v -\0! Aj! \n!\v A\0 Aj I\r\0\v@ E\r\0@ \bA€j AtjA6\0  O\r@ E@ Aj!A\0! Aj" -\0\0"\nG@ ! \n!\f\v  O@\f\v -\0! Aj!\f\v AþJ\r Aj! Ak!\v E\r  I\r\0\v\v  \0k!\t\v \0 \tj!A\0!\t@ \bA€j \tAtj"(\0@@  kAN@ ,\0\0"Aÿ\0q! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v -\0Aÿ\0q Atr! Aj!\f\v  O@A\0! A\x006\0A\0\f\vA\0! ",\0\0"\nA\0N@  \n6\0 \n!A\f\v@ ,\0\0"\nAÿ\0q Atr! Aj! \nA\0N\r  I\r\0\v\v  6\0  k\v  \fj!\f j!\v \tAj"\tA€G\r\0\v@ \0 F\r\0 \fA€ rA€ G@A\0!A\0! \fA€ I@@ Aj! \fA€I \fAt!\f\r\0\v\v@ \bA€j Atj" (\0 t6\0  ( t6  (\b t6\b  (\f t6\f  ( t6  ( t6  ( t6  ( t6 A\bj"A€G\r\0\v\vA\0!@@ \bA€j \rAtj(\0"Ak"\nA€ kO\r\0 Aq!\t At \rj!\fA\0!@ \nAI@A\0!\f\v A|q!\nA\0!@ \bA€\tj Atj" \f A\btj"6\0  A€j6\f  A€j6\b  A€j6 Aj! Aj" \nG\r\0\v \tE\r\v@ \bA€\tj Atj \f A\btj6\0 Aj! Aj! Aj" \tG\r\0\v\v \rAj"\rA€G\r\0\v A€ G\r\0  kA€H\r\0 \b (\0\0"6\0 A€€I\r\0 \b (\0"6 A€€I\r\0 \b (\0\b"6\b A€€I\r\0 \b (\0\f"6\f A€€I\r\0 \b (\0"6 A€€I\r\0 \b (\0"6 A€€I\r\0 \b (\0"6 A€€I\r\0 \b (\0"6 A€€I\r\0 \b (\0 "6 A€€I\r\0 \b (\0$"6$ A€€I\r\0 \b (\0("6( A€€I\r\0 \b (\0,"6, A€€I\r\0 \b (\x000"60 A€€I\r\0 \b (\x004"64 A€€I\r\0 \b (\x008"68 A€€I\r\0 \b (\0<"6< A€€I\r\0 \b (\0@"6@ A€€I\r\0 \b (\0D"6D A€€I\r\0 \b (\0H"6H A€€I\r\0 \b (\0L"6L A€€I\r\0 \b (\0P"6P A€€I\r\0 \b (\0T"6T A€€I\r\0 \b (\0X"6X A€€I\r\0 \b (\0\\"6\\ A€€I\r\0 \b (\0`"6` A€€I\r\0 \b (\0d"6d A€€I\r\0 \b (\0h"6h A€€I\r\0 \b (\0l"6l A€€I\r\0 \b (\0p"6p A€€I\r\0 \b (\0t"6t A€€I\r\0 \b (\0x"6x A€€I\r\0 \b (\0|"6| A€€I\r\0 A€j! Aàÿÿÿq"E\r  \0kA€j A@jN\r A@j!\n@  j!\rA\0!@ \b Atj"\v \bA€\tj" \v(\0"\0AÿqAtj(\0"\fAv \0A\fvl \fA\bvAÿqj"6\0 \v \v(\f"\0AÿqAt j(\0"Av \0A\fvl A\bvAÿqj"6\f \v \v(\b"\0AÿqAt j(\0"Av \0A\fvl A\bvAÿqj"6\b \v \v("\0AÿqAt j(\0"Av \0A\fvl A\bvAÿqj"\t6  \rj"\0 :\0 \0 :\0 \0 :\0 \0 \f:\0\0 \v -\0\0 Atr -\0A\btr  A€€I"\06\0 \v AA\0 \0j"-\0A\bt -\0\0 \tAtrr \t \tA€€I"\06 \v AA\0 \0j"-\0A\bt -\0\0 Atrr  A€€I"\06\b \v AA\0 \0j"-\0A\bt -\0\0 Atrr  A€€I"6\f \v(! \v(! \v(! \b Ar"Atj"\t \t(\0"\0AÿqAt j(\0"\fAv \0A\fvl \fA\bvAÿqj"6\0 \v AÿqAt j(\0"Av A\fvl A\bvAÿqj"6 \v AÿqAt j(\0"Av A\fvl A\bvAÿqj"6 \v AÿqAt j(\0"\0Av A\fvl \0A\bvAÿqj"6  \rj" :\0  :\0  \0:\0  \f:\0\0 \t AA\0 j"-\0A\bt -\0\0 Atrr  A€€I"\06\0 \v AA\0 \0j"-\0A\bt -\0\0 Atrr  A€€I"\06 \v AA\0 \0j"-\0A\bt -\0\0 Atrr  A€€I"\06 \v AA\0 \0j"-\0A\bt -\0\0 Atrr  A€€I"\06 AA\0 \0j! AI A\bj!\r\0\v A j" O\r  \nI\r\0\v\f\v \vA\0!\f\v  I@@  j!\nA\0!@ \b "\0Atj"\r \bA€\tj" \r(\f"AÿqAtj(\0"Av A\fvl A\bvAÿqj"6\f \r \r(\b"AÿqAt j(\0"\tAv A\fvl \tA\bvAÿqj"\f6\b \r \r("AÿqAt j(\0"Av A\fvl A\bvAÿqj"6 \r \r(\0"AÿqAt j(\0"Av A\fvl A\bvAÿqj"6\0 \0 \nj" :\0  \t:\0  :\0  :\0\0@ AÿÿK\r\0 Aj O\r\0 \r -\0\0 Atr -\0A\btr6\0 Aj!\v@ AÿÿK\r\0 Aj O\r\0 \r -\0\0 Atr -\0A\btr6 Aj!\v@ \fAÿÿK\r\0 Aj O\r\0 \r -\0\0 \fAtr -\0A\btr6\b Aj!\v@ AÿÿK\r\0 Aj O\r\0 \r -\0\0 Atr -\0A\btr6\f Aj!\v \0Aj! \0AI\r\0\v A j" I\r\0\v\v Aq"\0E@ !\f\v  j!\n \0! Aq@ \n Ak"j \bA€\tj \b Atj(\0AÿqAtj(\0:\0\0\v \0AF@ !\f\v@ \n Ak"\0j \bA€\tj \b \0Atj(\0AÿqAtj(\0:\0\0 \n Ak"\0j \bA€\tj \b \0Atj(\0AÿqAtj(\0:\0\0 AJ \0!\r\0\v !\v \bA€‰j$\0 \v´@  I\r\0@@@@ Ak\0\0\v  F\r  k!\f\v@ AÀ\0I\r\0 A@j"\bE\r\0@ \0 j!\tA\0!@ \t Atj"  j" (\0j-\0\0:\0\0   (j-\0\0:\0   (\bj-\0\0:\0   (\fj-\0\0:\0 Aj"AG\r\0\v  (\0Aj6\0  (Aj6  (\bAj6\b  (\fAj6\f A@k" \bI\r\0\v\v  Ak"O\r@  (\0"Aj6\0 \0 j"  j-\0\0:\0\0  ("Aj6   j-\0\0:\0  (\b"Aj6\b   j-\0\0:\0  (\f"Aj6\f   j-\0\0:\0 Aj" I\r\0\v\f\v@ A\bI\r\0 A\bk"\nE\r\0 Aj! Aj! Aj!\b (\0!\t@ \0 j"  \tj-\0\0:\0\0   (j-\0\0:\0  \b (\0j-\0\0:\0  \b (j-\0\0:\0   (\0j-\0\0:\0   (j-\0\0:\0   (\0j-\0\0:\0   (j-\0\0:\0  (\0Aj"\t6\0  (Aj6 A\bj" \nI\r\0\v\v  Ak"O\r@  (\0"Aj6\0 \0 j"  j-\0\0:\0\0  ("Aj6   j-\0\0:\0 Aj" I\r\0\v\f\v@  Atj"\b \b(\0"\bAj6\0 \0 j  \bj-\0\0:\0\0 Aj! Aj" G\r\0A\0!  I\r\0\v\v@  M\r\0A\0! Aj G@  k"Aq A~q!@  Atj" (\0"\bAj6\0 \0 j"\t  \bj-\0\0:\0\0  ("Aj6 \t  j-\0\0:\0 Aj! Aj" G\r\0\vE\r\v  Atj" (\0"Aj6\0 \0 j  j-\0\0:\0\0\v\vÂ~#\0A€k"\b$\0@@@@@@@@@@@ \t\0\n\n\n\n\n\v §"E@ !\f\n\v  \0 ü\n\0\0 !\f\t\v@ \b Atj"  Aqj-\0\0:\0\0   AvAqj-\0\0:\0   AvAqj-\0\0:\0   AvAqj-\0\0:\0   AvAqj-\0\0:\0   AvAqj-\0\0:\0   AvAqj-\0\0:\0   Avj-\0\0:\0 Aj"A€G\r\0\v B|Bˆ V\r B\bT@B\0!A\0\f\v@@ B\b}"Bˆ"P@B\0!\f\v@@ B}"Bˆ"P@B\0!\f\v B|Bþÿÿÿÿÿÿÿÿ\0ƒ!B\0!@  §j" \b \0 §j"-\0\0Atj)\x007\0\0  \b -\0Atj)\x007\0\b  \b -\0Atj)\x007\0  \b -\0Atj)\x007\0 B |! B|! B|" R\r\0\v BƒB\0R\r\v  §j" \b \0 §j"-\0\0Atj)\x007\0\0  \b -\0Atj)\x007\0\b B|! B|!\v B\bƒB\0R\r\v  §j \b \0 §j-\0\0Atj)\x007\0\0 B\b|!\v §Aj\v!@ BƒP\r\0  Z\r\0 B|! \0 j-\0\0!  }Bƒ§@  §j  Aqj-\0\0:\0\0 AþqAv! !\v  Q\r\0@  §j"\0  Aqj-\0\0:\0\0 \0  AvAqj-\0\0:\0 AüqAv! B|" R\r\0\v\v !\f\b\v -\0!\v -\0!\f -\0!\t -\0\0!\n@  j-\0\0!A\0!@  j-\0\0! \b \rAtj" :\0  :\0  \n:\0  \n:\0\0  :\0/  :\0.  \f:\0-  \v:\0,  :\0+  :\0*  \f:\0)  \f:\0(  :\0\'  :\0&  \f:\0%  \t:\0$  :\0#  :\0"  \f:\0!  \n:\0  :\0  :\0  \t:\0  \v:\0  :\0  :\0  \t:\0  \f:\0  :\0  :\0  \t:\0  \t:\0  :\0  :\0  \t:\0  \n:\0  :\0  :\0  \n:\0\r  \v:\0\f  :\0\v  :\0\n  \n:\0\t  \f:\0\b  :\0  :\0  \n:\0  \t:\0 -\0\0!\n  :\x003  :\x002  \v:\x001  \n:\x000 -\0!\t  :\0?  :\0>  \v:\0=  \v:\0<  :\0;  :\0:  \v:\x009  \f:\x008  :\x007  :\x006  \v:\x005  \t:\x004 \rAj!\r Aj"AG\r\0\v Aj"AG\r\0\v B|Bˆ V\rB\0! Büÿÿÿƒ"B\fX@\f\v B\f}!@ \b \0 §j"-\0\0Atj(\0! \b -\0Atj(\0!\t \b -\0Atj(\0!\n  §j" \b -\0Atj(\x006\0\f  \n6\0\b  \t6\0  6\0\0 B|! B|" S\r\0\v\f\v -\0!\t -\0!\n -\0\r!\v -\0\f!\f -\0\v!\r -\0\n! -\0\t! -\0\b! -\0! -\0! -\0! -\0! -\0! -\0! -\0! -\0\0!@ \b Atj"  j-\0\0":\0  \t:\0  :\0  \n:\0  :\0  \v:\0  :\0  \f:\0  :\0  \r:\0  :\0  :\0  :\0  :\0  :\0  :\0  :\0  :\0  :\0\r  :\0\f  :\0\v  :\0\n  :\0\t  :\0\b  :\0  :\0  :\0  :\0  :\0  :\0  :\0  :\0\0 Aj"AG\r\0\v B|Bˆ V\rB\0! Bþÿÿÿƒ"BT\r B}"Bˆ"P@B\0!\f\v B|Bþÿÿÿÿÿÿÿÿ\0ƒ!B\0!@ \b \0 §j"-\0\0Atj/\0!  §j" \b -\0Atj/\0;\0  ;\0\0 \b -\0Atj/\0!  \b -\0Atj/\0;\0  ;\0 B\b|! B|! B|" R\r\0\v\f\v §"\0E@ !\f\v  -\0\0 \0ü\v\0 !\f\vA\0!\f\v BƒB\0R\r\v \b \0 §j"-\0\0Atj/\0!  §j" \b -\0Atj/\0;\0  ;\0\0 B|! B|!\v  S@   B…|"Bˆ"|! BƒP@  §j \b \0 §j-\0\0Atj/\0;\0\0 B|! B|!\v B\0R@@  §j" \b \0 §j-\0\0Atj/\0;\0\0  \b \0 B|"§j-\0\0Atj/\0;\0 B|! B|!  R\r\0\v\v B|!\v  R@  §j  \0 §j-\0\0Aqj-\0\0:\0\0\v !\f\v  S@   B…|"Bˆ"|! BƒP@  §j \b \0 §j-\0\0Atj(\x006\0\0 B|! B|!\v B\0R@@  §j" \b \0 §j-\0\0Atj(\x006\0\0  \b \0 B|"§j-\0\0Atj(\x006\0 B\b|! B|!  R\r\0\v\v B|!\v@  Q\r\0  Z\r\0 B|! \0 §j-\0\0!  }Bƒ§@  §j  Aqj-\0\0:\0\0 AüqAv! !\v  Q\r\0@  §j"\0  Aqj-\0\0:\0\0 \0  AvAqj-\0\0:\0 AðqAv! B|" R\r\0\v\v !\v \bA€j$\0 \vލ7#\0A0k"$\0A~!@ \0E\r\0 E\r\0 A6( A6$ A\x006,Aôô\b"E@A}!\f\v  6\0  6 A\n6 A\x006ä B\x007 B\x007 B\x007\b A\x006Ô A\0:\0( B\x007Ì B\x007,  \x006  6\0  6  (\x006#\0A0k"$\0A~!@ ( "E\r\0 (\0 G\r\0 Aìj!5 AÈj!, Aü<j!\' Aüj! A@k!( Aüój!- AÌÃj!. Aœ“j!+ Aìâj!/ AàÖj!6 A¼=j!0 AŽÊj!7 Aüj!1 Aìj!2 A”ôj!8 AÄ\bj! A<j! (!@ A\nH!\0@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A!@@ AkT\0\v -\0!\0 -\0(E\r (\0"\v(!@ \0@ E\r (\f!\f\v E\r (\f!\f\v@ E@ (À\b"\0 (Àô"\fAj"F\rA|! \0 J\rU A6\f  (\0":\0\b (8" ($A l"\rO\rUA\0!A€!@  jAu"\t    \tAtj(\0H"\b"  \t \b"kAG\r\0\v  (Ð"\b Atj/\0" (Ô" Avj-\0\0 AtAqvAtA€€<qr"68 ("E@  ("Aj"\tA\0 \tA€G6 AtAð+j(\0!\v  \0Aj"6À\b  Ak"\t6@ \0 \fF\r\0  Aÿq \tAFs"G@  6\0\f\v A6\f  \rO\rVA\0!A€!@  jAu"    Atj(\0H""   "kAG\r\0\v  \b Atj/\0"  Avj-\0\0 AtAqvAtA€€<qr"68 \tE@  ("Aj"\tA\0 \tA€G6 AtAð+j(\0!\t\v  \0Aj"6À\b  \tAk"\t6 \f F\r\0  Aÿq \tAFs"G@  6\0\f\v A6\f  \rO\rVA\0!A€!@  jAu"    Atj(\0H""   "kAG\r\0\v  \b Atj/\0"  Avj-\0\0 AtAqvAtA€€<qr"68 \tE@  ("Aj"\tA\0 \tA€G6 AtAð+j(\0!\t\v  \0Aj6À\b  \tAk"\t6 \f F\r\0  Aÿq \tAFs"G@  6\0\f\v  \rO\rVA\0!A€!@  jAu"\f    \fAtj(\0H""  \f "kAG\r\0\v  \b Atj/\0"  Avj-\0\0 AtAqvAtA€€<qr"68 \tE@  ("Aj"\tA\0 \tA€G6 AtAð+j(\0!\t\v  \0Aj6À\b  \tAk"\f6  Aÿq \fAFsAj6\f  \rO\rVA\0!A€!@  jAu"\t    \tAtj(\0H"\r"  \t \r"kAG\r\0\v  6\0  \b Atj/\0  Avj-\0\0 AtAqvAtA€€<qr68 \fE@  ("Aj"A\0 A€G6 AtAð+j(\0!\f\v  \0Aj6À\b  \fAk"\x006   \0AFs6\0\v \v(E\r\v \v( -\0\b"\0:\0\0  (\fAk"6\f  \0 (à"AvsAt(ð# A\bts6à (\0"\v \v(Aj"\x006 \v \v(Ak"6 \v \v(Aj6 \0E@ \v \v(Aj6\v \r\0\v\f\v \0\r\0\v (\0" A\nG\r 8A\0Aà\0ü\v\0@ ( "\0AJ@ \0A\bk! (!\f\v (!\b@ \bE@A\0!3A\0! A\0!!A\0!"A\0!A\0!#A\0!)A\0!A\0!A\0!$A\0!A\0!A\0!\vA\0!A\0!\rA\0!A\0!A\0!\tA\0!\fA\0!A\0!A\0!A\0!A\0!\b\fN\v (\0"-\0\0!\t  \0A\bj"6  \t (A\btr"6  \bAk"\b6  Aj6\0  (\bAj"6\b E@  (\fAj6\f\v \0A\0N \0! !\0E\r\0\v\v  6 A\0!3  vAÿqAÂ\0F@A\0!\bA\0!A\0!A\0!A\0!A\0!\fA\0!\tA\0!A\0!A\0!\rA\0!A\0!\vA\0!A\0!A\0!$A\0!A\0!A\0!)A\0!#A\0!A\0!"A\0!!A\0! \f\vA{!A\0! A\0!!A\0!"A\0!A\0!#A\0!)A\0!A\0!A\0!$A\0!A\0!A\0!\vA\0!A\0!\rA\0!A\0!A\0!\tA\0!\fA\0!A\0!A\0!A\0!A\0!\b\fM\v \0@ (\0"(E\r (\f!@ E@ (À\b" (Àô"\0Aj"F\rA|!  J\rS A6\f  (\0"\r:\0\b (8"\b ($A l"O\rS  (Ì"\t \bAtj(\0"\fA\bv"\v68 ("\bE@  ("\bAj"A\0 A€G6 \bAtAð+j(\0!\b\v  Aj"6À\b  \bAk"\b6@ \0 F\r\0 \r \fAÿq \bAFs"\fG@  \f6\0\f\v A6\f  \vM\rT  \t \vAtj(\0"\fA\bv"\v68 \bE@  ("\bAj"A\0 A€G6 \bAtAð+j(\0!\b\v  Aj"6À\b  \bAk"\b6 \0 F\r\0 \r \fAÿq \bAFs"\fG@  \f6\0\f\v A6\f  \vM\rT  \t \vAtj(\0"\fA\bv"\v68 \bE@  ("\bAj"A\0 A€G6 \bAtAð+j(\0!\b\v  Aj6À\b  \bAk"\b6 \0 F\r\0 \r \fAÿq \bAFs"\0G@  \x006\0\f\v  \vM\rT  \t \vAtj(\0"\vA\bv"\r68 \bE@  ("\0Aj"\bA\0 \bA€G6 \0AtAð+j(\0!\b\v  Aj6À\b  \bAk"\x006  \vAÿq \0AFsAj6\f  \rM\rT  \t \rAtj(\0"A\bv68 \0E@  ("\0Aj"\tA\0 \tA€G6 \0AtAð+j(\0!\0\v  Aj6À\b  \0Ak"\x006  Aÿq \0AFs6\0\v (E\r\v ( -\0\b"\0:\0\0  (\fAk"6\f  \0 (à"AvsAt(ð# A\bts6à (\0" (Aj"\x006  (Ak"6  (Aj6 \0E@  (Aj6\v \r\0\v\f\v ($A l! (Àô"Aj!\r (\0!\t (8! (Ì! (À\b! (\f!\0 -\0\b!\v (à! (\0"(! ("!\b@@@@ \0A\0L@ !\f\v \bE\r \vAÿq!@ \0AF@ !A\0\f\v  \v:\0\0 Av sAt(ð# A\bts! Aj! \0Ak!\0 \bAk"\b\r\0\v\f\vA\v!\0@ \0E@ \bE@A\0!\bA!\0\f\v  \v:\0\0 \vAÿq AvsAt(ð# A\bts! \bAk!\b Aj!A!\0\f\vA|!  \rJ\rT  \rF@A\0!\0 \r!\f\v  O\rT \t!\v Aj!\0  Atj(\0"\tA\bv!@ \v \tAÿq"\tG@ \0!\f\v  F@ \0! \v!\t\f\v  O\rUA!\0  Atj(\0"A\bv! \v!\t \r" Aj"\fF\r \f! Aÿq"\t \vG\r  O\rU  Atj(\0"A\bv!A!\0 \v!\t \r" Aj"\fF\r \f! Aÿq"\t \vG\r  O\rU  Atj(\0"\0A\bv"\t O\rU Aj! \0AÿqAj!\0  \tAtj(\0"A\bv! Aÿq!\t\f\vA\0!\0\f\0\v\0\v\v !A\0!\b\v (\0"\r \r("\f  \bkj"6 \f K@ \r \r(Aj6\v  6À\b  \x006\f  \v:\0\b  6à  6Ì  68  \t6\0 \r \b6 \r 6\f\v@@ \r\0 (À\b"\0 (Àô"\fAj"F\rA|! \0 J\rQ A6\f  (\0":\0\b (8" ($A l"\tO\rQA\0!A€!@  jAu"\r    \rAtj(\0H"\b"  \r \b"kAG\r\0\v (Ð"\r Atj/\0! (Ô"\b Avj-\0\0!  \0Aj"6À\b    AtAqvAtA€€<qr"68 \0 \fF\r\0  Aÿq"G@  6\0\f\v A6\f  \tO\rQA\0!A€!@  jAu"    Atj(\0H""   "kAG\r\0\v \r Atj/\0! \b Avj-\0\0!  \0Aj"6À\b    AtAqvAtA€€<qr"68 \f F\r\0  Aÿq"G@  6\0\f\v A6\f  \tO\rQA\0!A€!@  jAu"    Atj(\0H""   "kAG\r\0\v \r Atj/\0! \b Avj-\0\0!  \0Aj6À\b    AtAqvAtA€€<qr"68 \f F\r\0  Aÿq"G@  6\0\f\v  \tO\rQA\0!A€!@  jAu"\f    \fAtj(\0H""  \f "kAG\r\0\v \r Atj/\0!\f \b Avj-\0\0!  \0Aj6À\b  AÿqAj6\f  \f  AtAqvAtA€€<qr"68  \tO\rQA\0!A€!@  jAu"\t    \tAtj(\0H""  \t "kAG\r\0\v  6\0 \r Atj/\0! \b Avj-\0\0!  \0Aj6À\b    \fAtAqvAtA€€<qr68\v \v( -\0\b"\0:\0\0  (\fAk"6\f  \0 (à"AvsAt(ð# A\bts6à (\0"\v \v(Aj"\x006 \v \v(Ak"6 \v \v(Aj6 \0E@ \v \v(Aj6\v \r\0\v\vA\0! (À\b (ÀôAjG\rN (\f\rN  (àAs"\x006à (0"AN (Ø!  \x006$  6 A´\n A j (0 \vAN@@@Aäý\0(\0"\0A\0N@ \0E\rAȇ(\0 \0AÿÿÿÿqG\r\v@Aèý\0(\0AÝ\0F\r\0A¬ý\0(\0"\0A¨ý\0(\0F\r\0A¬ý\0 \0Aj6\0 \0AÝ\0:\0\0\f\v%\f\vAäý\0Aäý\0(\0"\0Aÿÿÿÿ \06\0@@Aèý\0(\0AÝ\0F\r\0A¬ý\0(\0"\0A¨ý\0(\0F\r\0A¬ý\0 \0Aj6\0 \0AÝ\0:\0\0\f\v%\vAäý\0(\0Aäý\0A\x006\0\v\v (à"\0 (ØG@A|!\fO\vA! A6  (äAw \0s6ä (\0\v! (ðô! (ìô!! (èô!" (äô! (àô!# (Üô!) (Øô! (Ôô! (Ðô!3 (Ìô!$ (Èô! (Äô! (Àô!\v (¼ô! (¸ô!\r (´ô! (°ô! (¬ô!\t (¨ô!\f (¤ô! ( ô! (œô! (˜ô! (”ô!\b@@@@ A\vk()\b\t\n\v9\f\r!"C#$%G\0 \v ( !A\0\fG\v ( !%A\0!\fG\v ( !&A!\fF\v ( !\v A\v6 A\bN@ A\bk!\0 (!\n\f"\v (!@ E\rG (\0"\0-\0\0!  A\bj"6   (A\btr"\n6  Ak"6  \0Aj6\0  (\bAj"\x006\b \0E@  (\fAj6\f\v A\0N !\0 !E\r\0\v\f!\v ( !\0\f!\v ( !\f!\v ( !\f"\v ( !\0\f,\v ( !\f,\v ( !\0\f,\v ( !\f,\v ( !\f-\v ( !\0\f-\v ( !\f-\v ( !\0\f-\v ( !\f-\v ( !\0\f-\v ( !\f-\v ( !\f0\v ( !*A\f1\v ( !\f\v ( !\0\f\v ( !\f\v ( !\0\f\v ( !\f\v ( !\0\f\v ( !\f\v ( !\0\f\v ( !\f\v#\0Ak"\0$\0 \0Aé6 \0A¡6\0A› \0A\0\vA!\f)\vA!\f(\vA\f\vA!\f\vA\f!\vA\f!\vA\f \v  \x006 \n \0vAÿqAÚ\0G\r%\v A\f6@ \0A\bN@ \0A\bk! (!\n\f\v (!@ E\r% (\0"-\0\0!  \0A\bj"6   (A\btr"\n6  Ak"6  Aj6\0  (\bAj"6\b E@  (\fAj6\f\v \0A\0N \0! !\0E\r\0\v\v  6 \n vAÿqAè\0G\r$\v A\r6@ A\bN@ A\bk! (!\n\f\v (!\0@ \0E\r$ (\0"-\0\0!  A\bj"6   (A\btr"\n6  \0Ak"\x006  Aj6\0  (\bAj"6\b E@  (\fAj6\f\v A\0N ! !E\r\0\v\v  6  \n vAÿq"\x006$A\0! \0A:kAwI@A{!\f&\v  \0A0k"\x006$ (,! ($! -\0(@   \0AÀš\flA \x006Ð  (, ($A lAuA ($\0"\x006ÔA}! (ÐE\r& \0E\r&\f\v   \0A€µlA \0"\x006Ì \0\r\0A}!\f%\v A6@ ( "\0A\bN@ \0A\bk! (!\n\f\v (\0"(!@ E\r# (\0"-\0\0!  \0A\bj"6   (A\btr"\n6  Ak"6  Aj6\0  (\bAj"6\b E@  (\fAj6\f\v \0A\0N \0! !\0E\r\0\v\v  6 \n vAÿq"\0AF\r \0A1G\r \v A6 A\bN@ A\bk!\0 (!\n\f\n\v (\0"(!@ E\r! (\0"\0-\0\0!  A\bj"6   (A\btr"\n6  Ak"6  \0Aj6\0  (\bAj"\x006\b \0E@  (\fAj6\f\v A\0N !\0 !E\r\0\v\f\t\v A*6@ A\bN@ A\bk!\0 (!\n\f\v (\0"(!@ E\r! (\0"\0-\0\0!  A\bj"6   (A\btr"\n6  Ak"6  \0Aj6\0  (\bAj"\x006\b \0E@  (\fAj6\f\v A\0N !\0 !E\r\0\v\v  \x006 \n \0vAÿqAò\0G\r\v A+6@ \0A\bN@ \0A\bk! (!\n\f\v (\0"(!@ E\r (\0"-\0\0!  \0A\bj"6   (A\btr"\n6  Ak"6  Aj6\0  (\bAj"6\b E@  (\fAj6\f\v \0A\0N \0! !\0E\r\0\v\v  6 \n vAÿqAÅ\0G\r\v A,6@ A\bN@ A\bk!\0 (!\n\f\v (\0"(!@ E\r (\0"\0-\0\0!  A\bj"6   (A\btr"\n6  Ak"6  \0Aj6\0  (\bAj"\x006\b \0E@  (\fAj6\f\v A\0N !\0 !E\r\0\v\v  \x006 \n \0vAÿqA8G\r\v A-6@ \0A\bN@ \0A\bk! (!\n\f\v (\0"(!@ E\r (\0"-\0\0!  \0A\bj"6   (A\btr"\n6  Ak"6  Aj6\0  (\bAj"6\b E@  (\fAj6\f\v \0A\0N \0! !\0E\r\0\v\v  6 \n vAÿqAÐ\0G\r\v A.6@ A\bN@ A\bk!\0 (!\n\f\v (\0"(!@ E\r (\0"\0-\0\0!  A\bj"6   (A\btr"\n6  Ak"6  \0Aj6\0  (\bAj"\x006\b \0E@  (\fAj6\f\v A\0N !\0 !E\r\0\v\v  \x006 \n \0vAÿqAG\r A\x006Ü\v A/6@ \0A\bN@ \0A\bk! (!\n\f\v (\0"(!@ E\r (\0"-\0\0!  \0A\bj"6   (A\btr"\n6  Ak"6  Aj6\0  (\bAj"6\b E@  (\fAj6\f\v \0A\0N \0! !\0E\r\0\v\v  6  \n vAÿq (ÜA\btr6Ü\v A06@ A\bN@ A\bk!\0 (!\n\f\v (\0"(!@ E\r (\0"\0-\0\0!  A\bj"6   (A\btr"\n6  Ak"6  \0Aj6\0  (\bAj"\x006\b \0E@  (\fAj6\f\v A\0N !\0 !E\r\0\v\v  \x006  \n \0vAÿq (ÜA\btr6Ü\v A16@ \0A\bN@ \0A\bk! (!\n\f\v (\0"(!@ E\r (\0"-\0\0!  \0A\bj"6   (A\btr"\n6  Ak"6  Aj6\0  (\bAj"6\b E@  (\fAj6\f\v \0A\0N \0! !\0E\r\0\v\v  6  \n vAÿq (ÜA\btr6Ü\v A26@ A\bN@ A\bk! (!\n\f\v (\0"(!\0@ \0E\r (\0"-\0\0!  A\bj"6   (A\btr"\n6  \0Ak"\x006  Aj6\0  (\bAj"6\b E@  (\fAj6\f\v A\0N ! !E\r\0\v\v  6 A! A6  \n vAÿq (ÜA\btr6ÜA!\f\v  \x006 \n \0vAÿqAÁ\0G\r\v A6@ \0A\bN@ \0A\bk! (!\n\f\v (\0"(!@ E\r (\0"-\0\0!  \0A\bj"6   (A\btr"\n6  Ak"6  Aj6\0  (\bAj"6\b E@  (\fAj6\f\v \0A\0N \0! !\0E\r\0\v\v  6 \n vAÿqAÙ\0G\r\v A6@ A\bN@ A\bk!\0 (!\n\f\v (\0"(!@ E\r (\0"\0-\0\0!  A\bj"6   (A\btr"\n6  Ak"6  \0Aj6\0  (\bAj"\x006\b \0E@  (\fAj6\f\v A\0N !\0 !E\r\0\v\v  \x006 \n \0vAÿqA&G\r\v A6@ \0A\bN@ \0A\bk! (!\n\f\v (\0"(!@ E\r (\0"-\0\0!  \0A\bj"6   (A\btr"\n6  Ak"6  Aj6\0  (\bAj"6\b E@  (\fAj6\f\v \0A\0N \0! !\0E\r\0\v\v  6 \n vAÿqAÓ\0G\r\v A6@ A\bN@ A\bk! (!\n\f\v (\0"(!\0@ \0E\r (\0"-\0\0!  A\bj"6   (A\btr"\n6  \0Ak"\x006  Aj6\0  (\bAj"6\b E@  (\fAj6\f\v A\0N ! !E\r\0\v\v  6 \n vAÿqAÙ\0G\r  (,Aj"\x006, (0AN@  \x006Aƒ Aj\v A\x006Ø\v A6@ ( "\0A\bN@ \0A\bk! (!\n\f\v (\0"(!@ E\r (\0"-\0\0!  \0A\bj"6   (A\btr"\n6  Ak"6  Aj6\0  (\bAj"6\b E@  (\fAj6\f\v \0A\0N \0! !\0E\r\0\v\v  6  \n vAÿq (ØA\btr6Ø\v A6@ A\bN@ A\bk!\0 (!\n\f\v (\0"(!@ E\r (\0"\0-\0\0!  A\bj"6   (A\btr"\n6  Ak"6  \0Aj6\0  (\bAj"\x006\b \0E@  (\fAj6\f\v A\0N !\0 !E\r\0\v\v  \x006  \n \0vAÿq (ØA\btr6Ø\v A6@ \0A\bN@ \0A\bk! (!\n\f\v (\0"(!@ E\r (\0"-\0\0!  \0A\bj"6   (A\btr"\n6  Ak"6  Aj6\0  (\bAj"6\b E@  (\fAj6\f\v \0A\0N \0! !\0E\r\0\v\v  6  \n vAÿq (ØA\btr6Ø\v A6@ A\bN@ A\bk!\0 (!\n\f\v (\0"(!@ E\r (\0"\0-\0\0!  A\bj"6   (A\btr"\n6  Ak"6  \0Aj6\0  (\bAj"\x006\b \0E@  (\fAj6\f\v A\0N !\0 !E\r\0\v\v  \x006  \n \0vAÿq (ØA\btr6Ø\v A6@ \0A\0J@ (!\f\v (\0"(! \0!@ E\r (\0"-\0\0!  A\bj"\x006   (A\btr"6  Ak"6  Aj6\0  (\bAj"6\b E@  (\fAj6\f\v AxJ \0!E\r\0\v\v A\x0064  \0Ak"6   vAq:\0\v A6@ A\bN@ A\bk!\0 (!\n\f\v (\0"(!@ E\r (\0"\0-\0\0!  A\bj"6   (A\btr"\n6  Ak"6  \0Aj6\0  (\bAj"\x006\b \0E@  (\fAj6\f\v A\0N !\0 !E\r\0\v\v  \x006  \n \0vAÿq (4A\btr64\v A6@ \0A\bN@ \0A\bk! (!\n\f\v (\0"(!@ E\r\r (\0"-\0\0!  \0A\bj"6   (A\btr"\n6  Ak"6  Aj6\0  (\bAj"6\b E@  (\fAj6\f\v \0A\0N \0! !\0E\r\0\v\v  6  \n vAÿq (4A\btr64\v A6@ A\bN@ A\bk! (!\n\f\v (\0"(!\0@ \0E\r\f (\0"-\0\0!  A\bj"6   (A\btr"\n6  \0Ak"\x006  Aj6\0  (\bAj"6\b E@  (\fAj6\f\v A\0N ! !E\r\0\v\v  6  (4A\bt"\0 \n vAÿqr"64A\0!A|! \0A\0H\r\r  ($A lA\nrJ\r\rA\0\v!@@@ E@ AN\r !\bA!\f\v A6@ ( "A\0J@ (!\f\v (\0"(! !\0@ E\r (\0"-\0\0!  \0A\bj"6   (A\btr"6  Ak"6  Aj6\0  (\bAj"6\b E@  (\fAj6\f\v \0AxJ !\0E\r\0\v\v  Ak"\x006 \b 5j  \0vAq:\0\0 \bAj!\f\vA\0!\b 2A\0A€ü\v\0 !4A\0!\f\vA\0!\f\0\v\0\v@@@@@ E@ \bAJ\rA\0! \b 5j-\0\0E\r\f\v A6 ( "A\0J@ (!\f\v (\0"(! !\0@ E\r (\0"-\0\0!  \0A\bj"6   (A\btr"6  Ak"6  Aj6\0  (\bAj"6\b E@  (\fAj6\f\v \0AxJ !\0E\r\0\v\f\vA\0! A\x006èA\0!@  2j-\0\0@  1j :\0\0  (èAj"6è\v 2 Ar"\0j-\0\0@  1j \0:\0\0  (èAj"6è\v Aj"A€G\r\0\v E@A|!A\0! 4!\f\v Aj! 4!\f\v  Ak"\x006  \0vAq@ 2 \bAtj jA:\0\0\v Aj!\v !4 AJ\r\0A!\f\v \bAj!\bA\0!\f\0\v\0\v A6@ ( "AN@ (!\f\v (\0"(! !\0@ E\r\t (\0"-\0\0!  \0A\bj"6   (A\btr"6  Ak"6  Aj6\0  (\bAj"6\b E@  (\fAj6\f\v \0AzJ !\0E\r\0\v\v  Ak"6  vAq"AkAO\r\v A6@ AN@ (!\f\v (\0"(! !\0@ E\r\b (\0"-\0\0!  \0A\bj"6   (A\btr"6  Ak"6  Aj6\0  (\bAj"6\b E@  (\fAj6\f\v \0AJ !\0E\r\0\v\v  Ak"\x006 A\0!\f  \0vAÿÿq"E\rA\0!\bA\0\v!@@ E@ \b N\r !\fA\0!A!\f\v A 6  Aj"\0 \0 H! ( !@@@ A\0J@ (!\f\v (\0"(! !\0@ E\r\v (\0"\n-\0\0!  \0A\bj"6   (A\btr"6  Ak"6  \nAj6\0  (\bAj"\n6\b \nE@  (\fAj6\f\v \0AxJ !\0E\r\0\v\v  Ak"6  vAqE\rA|!A\0! Aj" H\r\0\v !\f\v\v \b 7j :\0\0 \bAj!\b \f!A\0!\f\v\vA\0!A\0! A\0J@@ A*j j :\0\0  Aj"Aÿq"K\r\0\v\vA\0!A\0!A\0!\b A\0J@@  7j-\0\0" A*jj-\0\0!\b@ E\r\0A\0! "!\0 Aq"@@ A*j j"\0 \0Ak-\0\0:\0\0 Ak! Aj"Aÿq G\r\0\v Aüq!\0\v AI\r\0@ A*j j"Ak Ak(\0\x006\0\0 Ak! \0Ak"\0Aÿq\r\0\v\v  \b:\0*  0j \b:\0\0 Aj" G\r\0\v !\b\vA\0\v!@@@@@@@@@@@@@@ \0\v  N\r !\fA!\f\v A!6 ( "AH\r (!\f\t\v A\0J\rA\0\f\v (\0"(! !\0@ E\r (\0"-\0\0!  \0A\bj"6   (A\btr"6  Ak"6  Aj6\0  (\bAj"6\b E@  (\fAj6\f\v \0A|J !\0E\r\0\v\f\v A#6 *A\0L\r (!\f\v A"6@ ( "A\0L@ (\0"(! !\0@ E\r (\0"-\0\0!  \0A\bj"6   (A\btr"6  Ak"6  Aj6\0  (\bAj"6\b E@  (\fAj6\f\v \0AxJ !\0E\r\0\v\f\v (!\v  Ak"*6  *vAq\r 6 A‚lj \bj $:\0\0 \bAj\f\v (\0"(! *!\0@ E\r (\0"-\0\0!  \0A\bj"*6   (A\btr"6  Ak"6  Aj6\0  (\bAj"6\b E@  (\fAj6\f\v \0AxJ *!\0E\r\0\v\f\v Aþÿÿÿq! Aq!\n Aüÿÿÿq!\b Aq!A\0!@@ A\0J@ 6 A‚lj!\fA\0!A !A\0!A\0!\tA\0!A\0!@ AI"E@@  \t \fj"\0-\0\0"  K"\v \0-\0"  \vK" \0-\0"\v \v K" \0-\0"\0 \0 K!    I"   K" \v  \vK" \0 \0 I! \tAj"\t \bG\r\0\v ! \b! E\r\v !@   \fj-\0\0"\0 \0 K!  \0 \0 I! Aj! Aj" G\r\0\v\v . Aˆ\bl"\tj!A\0! !@ !\0A\0!A\0!\v@ AG@@  \fj-\0\0 \0F@  Atj 6\0 Aj!\v \f Ar"\vj-\0\0 \0F@  Atj \v6\0 Aj!\v Aj" G\r\0\v !\v \nE\r\v \0 \v \fj-\0\0G\r\0  Atj \v6\0 Aj!\v \0Aj! \0 G\r\0\vA\0!\0 \t +j"A\0AÜ\0ü\v\0  I!\tA\0!A\0!\v E@@  \v \fj"-\0\0Atj" (Aj6  -\0Atj" (Aj6  -\0Atj" (Aj6  -\0Atj" (Aj6 \vAj"\v \bG\r\0\v \v! E\r\v@   \fj-\0\0Atj" (Aj6 Aj! \0Aj"\0 G\r\0\v\f\vA\0! + Aˆ\blj"A\0AÜ\0ü\v\0A!\tA !\v + Aˆ\bl"\0j" ( (\0j"6  (\b j"6\b  (\f j"6\f  ( j"6  ( j"6  ( j"6  ( j"6  ( j"6  ($ j"6$  (( j"6(  (, j"6,  (0 j"60  (4 j"64  (8 j"68  (< j"6< A@k" (\0 j"6\0  (D j"6D  (H j"6H  (L j"6L  (P j"6P  (T j"6T  (X j6X \0 /j"\fA\0AÜ\0ü\v\0@ \t\r\0A\0!\v "\0 G@ \0 kAj"\0Aq \0Aþq! !\0A\0!@ \f \0At"j \v  Aj"9j":(\0  j(\0kj"Ak6\0 \f 9j  \0Aj"\0Atj(\0 :(\0k Atj"Ak6\0 At!\v Aj" G\r\0\vE\r\v \f \0At"\0j \0 j"\0( \0(\0k \vjAk6\0\v@  M\r\0 Aj!  "\0kAq@  Atj" \f \0Atj(\0At (\0kAj6\0 !\0\v  F\r\0@  \0At"Aj"j"\t  \fj(\0At \t(\0kAj6\0  \0Aj"\0Atj"  \fj(\0At (\0kAj6\0 \0 G\r\0\v\v - Atj 6\0 Aj" G\r\0\v \v! ($ (è!\b (A\0A€\bü\v\0A!Aÿ!\0@ \0 j"Ak "At"Ar:\0\0  Ar:\0\0 Ak A\rr:\0\0 Ak A\fr:\0\0 Ak A\vr:\0\0 Ak A\nr:\0\0 Ak A\tr:\0\0 Ak A\br:\0\0 A\bk Ar:\0\0 A\tk Ar:\0\0 A\nk Ar:\0\0 A\vk Ar:\0\0 A\fk Ar:\0\0 A\rk Ar:\0\0 Ak Ar:\0\0  \0Ak"j :\0\0 \' Atj 6\0 Ak! \0Ak!\0 \r\0\vA l! \bAj!\t A\0L@A|!A\0!\vA€!\bA\0!A\0! !\f\f\v / 0-\0\0"#Aˆ\bl"\0j!" \0 .j! \0 +j!!A€!\bA1!A\0!\v - #Atj(\0"!A\0! !\f\f\vA!\f\v  *Ak"\x006 AA  \0vAq $j!$\f\v  Ak"\x006  \0vAq!$A\0\v"\b H\r\0 Aj! \f!\f\v $AkAlI\rA!\f\vA\0!\f\0\v\0\v A$6@  ( "L@ (!\n\f\v (\0"("\0E\r (\b! (\0! (!\n@ -\0\0!  A\bj"6   \nA\btr"\n6  Aj"6\b  \0Ak"\x006  Aj"6\0 E@  (\fAj6\f\v  N\rA\0! \0\r\0\vA\0!\f\v   k"6 A tAs \n vq!A\v!@@@@@@ E@ A%6 A\0L\r (!\f\vA|!A\0! AJ\r\v  " At"\0j(\0L\r Aj!\f\v (\0"(! !\0@ E\r\b (\0"-\0\0!  \0A\bj"6   (A\btr"6  Ak"6  Aj6\0  (\bAj"6\b E@  (\fAj6\f\v \0AxJ !\0E\r\0\v\v  Ak"6  vAq") Atr!\f\v  \0 !j(\0k"\0AK\r\b \0Atj(\0!\rA!\f\vA\0!\f\vA!\f\0\v\0\v@@@@@@@@@@@@@@@@@@ \0\v A\'6 %A\0L\r (!\f\v A)6 &A\0L\r (!\f\v \t \rF\rA! \rAK\rA!\f\f\v A&6  ( "L@ (!\n\f\n\v (\0"("\0E\r (\b! (\0! (!\n@ -\0\0!  A\bj"6   \nA\btr"\n6  Aj"6\b  \0Ak"\x006  Aj"6\0 E@  (\fAj6\f\v  N\r\nA\0! \0\r\0\vA\0!\f\v (\0"(! %!\0@ E\r (\0"-\0\0!  \0A\bj"%6   (A\btr"6  Ak"6  Aj6\0  (\bAj"6\b E@  (\fAj6\f\v \0AxJ %!\0E\r\0\v\v  %Ak"%6  %vAq") Atr\f\b\vA|! \v N\r \rAk!@ \rAM@  \'(\0j" j"\0-\0\0!\n@@ \rAH@ !\f\v@ \rAk"AqE@ \0Ak \0Ak(\0\x006\0\0 "AI\r\v !@  j"\0Ak \0Ak(\0\x006\0\0 \0Ak \0Ak/\0\0;\0\0 \0Ak \0A\bk/\0\0;\0\0 A\bk"AK\r\0\v\v E\r\vA\0! Aq"\0E\r\0@  j" Ak-\0\0:\0\0 Ak! Aj" \0G\r\0\v\v  \n:\0\0\f\v  \' Av"Atj"(\0"\0 Aq"j"j-\0\0!\n @@  j"\0 \0Ak-\0\0:\0\0 Ak" (\0"\0J\r\0\v\v  \0Aj6\0@ \' Atj"\0 \0(\0Ak"6\0  j  \0Ak(\0j-\0:\0\0 AK Ak!\r\0\v \' \'(\0Ak"\x006\0 \0 j \n:\0\0 \'(\0\r\0A!Aÿ!\0@ \0 j"  \' "Atj"(\0j-\0:\0\0 Ak  (\0j-\0:\0\0 Ak  (\0j-\0\r:\0\0 Ak  (\0j-\0\f:\0\0 Ak  (\0j-\0\v:\0\0 Ak  (\0j-\0\n:\0\0 Ak  (\0j-\0\t:\0\0 Ak  (\0j-\0\b:\0\0 A\bk  (\0j-\0:\0\0 A\tk  (\0j-\0:\0\0 A\nk  (\0j-\0:\0\0 A\vk  (\0j-\0:\0\0 A\fk  (\0j-\0:\0\0 A\rk  (\0j-\0:\0\0 Ak  (\0j-\0:\0\0  \0Ak"j  (\0j-\0\0:\0\0  6\0 Ak! \0Ak!\0 \r\0\v\v ( 1 \nAÿqj-\0\0"\0Atj" (\0Aj6\0@ -\0(@ (Ð \vAtj \0;\0\f\v (Ì \vAtj \x006\0\v \vAj!\v E@A\0! Aj" \fN\r +  0j-\0\0"#Aˆ\bl"\0j!! \0 .j! \0 /j!"A2! - #Atj(\0!\v Ak! !A!\f\f\v A(6  ( "L@ (!\n\f\v (\0"("\0E\r\r (\b! (\0! (!\n@ -\0\0!  A\bj"6   \nA\btr"\n6  Aj"6\b  \0Ak"\x006  Aj"6\0 E@  (\fAj6\f\v  N\rA\0! \0\r\0\vA\0!\f\v (\0"(! &!\0@ E\r\r (\0"-\0\0!  \0A\bj"&6   (A\btr"6  Ak"6  Aj6\0  (\bAj"6\b E@  (\fAj6\f\v \0AxJ &!\0E\r\0\v\v  &Ak"&6  &vAq") Atr\f\vA\0!A|! (4"\0A\0H@ \r!\t\f\v \0 \vN@ \r!\t\f\v@@@ ( Atj(\0"\0A\0H\r \0 \vJ\r ( Ar"\bAtj(\0"\0A\0H\r \0 \vJ\r ( Ar"\bAtj(\0"\0A\0H\r \0 \vJ\r ( Ar"\bAtj(\0"\0A\0H\r \0 \vJ\r Aj"A€G\r\0\v A\x006\0A!A!\0@  \0At"j  j(\x006\0  Aj"j  j(\x006\0  A\bj"j  j(\x006\0  A\fj"j  j(\x006\0A\0!\b \0Aj"\0AG\r\0\vA\0!\0@  Atj" (\0 \0j"\x006\0  ( \0j"\x006  (\b \0j"\x006\b  (\f \0j"\x006\f  ( \0j"\x006  ( \0j"\x006  ( \0j"\x006  ( \0j"\x006 A\bj"AG\r\0\v@@@A\0!  \bAtj(\0"\0A\0H@ \r!\t\f\v \0 \vJ@ \r!\t\f\v \bA€F@A!\b@  \bAtj"\0Ak(\0 \0(\0"J@ \r!\t\f\v   \bAj"\0Atj(\0"J@ \r!\t \0!\b\f\v   \bAj"\0Atj(\0"J@ \r!\t \0!\b\f\v  \bAj"\0Atj(\0 H@ \r!\t \0!\b\f\v \bAj"\bAG\r\0\v A6à A\0:\0\b A\x006\f A6 (0AN@AâA\vA\0!A\0!\0@@@ -\0(E@ (Ì!\0@ \vAG@ \vAq \vAþÿÿÿq!\t@ \0  \0 Atj-\0\0Atj"(\0Atj"\b \b(\0 A\btr6\0  (\0Aj6\0 \0  \0 Ar"\bAtj-\0\0Atj"(\0Atj" (\0 \bA\btr6\0  (\0Aj6\0 Aj" \tG\r\0\vE\r\v \0  \0 Atj-\0\0Atj"(\0Atj" (\0 A\btr6\0  (\0Aj6\0\v \0 (4Atj(\0! A\x006À\b  A\bv"68 -\0E\r B\x007  ($A lO\r \0 Atj(\0! A6À\b Bꄀ€7\f\v@ , \0At"j  j(\x006\0 \0A€G@ , Ar"j  j(\x006\0 , A\br"j  j(\x006\0 , A\fr"j  j(\x006\0 \0Aj!\0\f\v\v@ (Ð Atj"\0 , \0-\0\0Atj"\0(\0";\0 (Ô Avj"\t-\0\0! \t Aq Aq A\fvAðÿ?qr Apq Avr\v:\0\0 \0 \0(\0Aj6\0 Aj" \vG\r\0\v (Ô (4"Auj-\0\0 AtAqvAtA€€<q (Ð Atj/\0r!@ "\bAt"\0 (Ðj"\t/\0! \bAv" (Ôj"-\0\0 \t ;\0 -\0\0!\t \bAtAq"vAtA€€<q r!  \bAq \tAq A\fvAðÿ?qr \tApq Avr\v:\0\0 \b" (4G\r\0\v A\x006À\b  68@ -\0@ B\x007  ($A lO\rA\0!A€!@  jAu"\t  \b  \tAtj(\0H"\n"  \t \n"kAG\r\0\v  6\0 (Ð \0j/\0!\0 (Ô j-\0\0!  (À\bAj6À\b  6\0 Bꄀ€7\f\v \b ($A lO\rA\0!A€!@  jAu"\t  \b  \tAtj(\0H"\n"  \t \n"kAG\r\0\v  6\0 (Ð \0j/\0!\0 (Ô j-\0\0!  (À\bAj6À\b\v  \0  vAtA€€<qr68 \r!\tA\0!\f\v  ($A lO\r \0 Atj(\0! A6À\b\v  A\bv68  Aÿq6\0 \r!\t \v!\bA\0!\f\vA!\f\v  \bAr"\0Atj(\0"A\0H\r  \vJ\r  \bAr"\0Atj(\0"A\0H\r  \vJ\r@  \bAr"\0Atj(\0"A\0H\r\0  \vJ\r\0 \bAj!\b\f\v\v \r!\t \0!\b\f\v \r!\t \0!\b\f\v \r!\t \0!\b\f\v \r!\t\f\r\v \r!\t !\b\f\f\v   k"&6 A tAs \n &vq\v!A|!A\0! AJ\r\v@ " At"\0j(\0 H@ Aj!\f\v  \0 !j(\0k"\0AK\r\f \0Atj(\0!\r\f\vA!\f\v   k"%6 A tAs \n %vq\v!A|!A\0! AJ\r\t " At"\0j(\0 H@ Aj!\f\v  \0 !j(\0k"\0AK\r\t \0Atj(\0"\rAO\r !\vA|! Aÿÿÿ\0J@A\0! !\f\t\v At"  \r j! E@A\0! \f Aj"L@A\0!\f\n\v +  0j-\0\0"#Aˆ\bl"\0j!! \0 .j! \0 /j!"A2! - #Atj(\0!\v Ak! !A!\f\v ( 1  (ü<j-\0\0j-\0\0"Atj"\0 Aj" \0(\0j6\0@@ -\0(@ A\0N\r !\f\v A\0N\r !\f\v \v  \v J!\0@ \0 \vF@ ! \0!\v\f\n\v (Ð \vAtj ;\0 \vAj!\v AJ Ak"!\r\0\v\f\v \v  \v J!\0@ \0 \vF@ ! \0!\v\f\t\v (Ì \vAtj 6\0 \vAj!\v AJ Ak"!\r\0\v\f\vA\0!\f\vA!\f\0\v\0\vA|!\f\vA\0!A\0!\f\vA{!\vA\0!\v  6ðô  !6ìô  "6èô  6äô  #6àô  )6Üô  6Øô  6Ôô  36Ðô  $6Ìô  6Èô  6Äô  \v6Àô  6¼ô  \r6¸ô  6´ô  6°ô  \t6¬ô  \f6¨ô  6¤ô  6 ô  6œô  6˜ô  \b6”ô E\r\0 (ä! (0AN@ (Ü!\0  6  \x006\0AÆ\n  (ä!\vAA|  (ÜF!\f\vA! (AF\r\0\v\v A0j$\0@@@ "\0\v  (\0 (k6\0A\0! ( "\0E\r \0(\0 G\r \0(Ì"@ (,  ((\0\0\v \0(Ð"@ (,  ((\0\0\v \0(Ô"\0@ (, \0 ((\0\0\v (, ( ((\0\0\f\v (!@ ( "\0E\r\0 \0(\0 G\r\0 \0(Ì"@ (,  ((\0\0\v \0(Ð"@ (,  ((\0\0\v \0(Ô"\0@ (, \0 ((\0\0\v (, ( ((\0\0\vAyAx !\f\v ( "\0E\r\0 \0(\0 G\r\0 \0(Ì"@ (,  ((\0\0\v \0(Ð"@ (,  ((\0\0\v \0(Ô"\0@ (, \0 ((\0\0\v (, ( ((\0\0\v A0j$\0 \vÆ@@ A\0  \0kAHE@ \0,\0\0"Aÿ\0q! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0-\0Aÿ\0q Atr! \0Aj!\f\v \0 O@ A\x006\0A\0\v \0,\0\0"A\0N\r \0!@ ,\0\0"Aÿ\0q Atr! Aj! A\0N\r  K\r\0\v\v  6\0  \0k\v  6\0A\v­\v \0 j!@@ \0("Aq\r\0 AqE\r \0(\0" j!@@@ \0 k"\0AÈþ\0(\0G@ \0(\f! AÿM@  \0(\b"G\rA´þ\0A´þ\0(\0A~ Avwq6\0\f\v \0(! \0 G@ \0(\b" 6\f  6\b\f\v \0(" \0Aj \0("E\r \0Aj\v!@ ! "Aj! ("\r\0 Aj! ("\r\0\v A\x006\0\f\v ("AqAG\rA¼þ\0 6\0  A~q6 \0 Ar6  6\0\v  6\f  6\b\f\vA\0!\v E\r\0@ \0("At"(ä€ \0F@ Aä€j 6\0 \rA¸þ\0A¸þ\0(\0A~ wq6\0\f\v@ \0 (F@  6\f\v  6\v E\r\v  6 \0("@  6  6\v \0("E\r\0  6  6\v@@@@ ("AqE@AÌþ\0(\0 F@AÌþ\0 \x006\0AÀþ\0AÀþ\0(\0 j"6\0 \0 Ar6 \0AÈþ\0(\0G\rA¼þ\0A\x006\0AÈþ\0A\x006\0\vAÈþ\0(\0"\b F@AÈþ\0 \x006\0A¼þ\0A¼þ\0(\0 j"6\0 \0 Ar6 \0 j 6\0\v Axq j! (\f! AÿM@ (\b" F@A´þ\0A´þ\0(\0A~ Avwq6\0\f\v  6\f  6\b\f\v (!  G@ (\b" 6\f  6\b\f\v (" Aj ("E\r Aj\v!@ ! "Aj! ("\r\0 Aj! ("\r\0\v A\x006\0\f\v  A~q6 \0 Ar6 \0 j 6\0\f\vA\0!\v E\r\0@ ("At"(ä€ F@ Aä€j 6\0 \rA¸þ\0A¸þ\0(\0A~ wq6\0\f\v@  (F@  6\f\v  6\v E\r\v  6 ("@  6  6\v ("E\r\0  6  6\v \0 Ar6 \0 j 6\0 \0 \bG\r\0A¼þ\0 6\0\v AÿM@ AøqAÜþ\0j!A´þ\0(\0"A Avt"qE@A´þ\0  r6\0 \f\v (\b\v!  \x006\b  \x006\f \0 6\f \0 6\b\vA! AÿÿÿM@ A& A\bvg"kvAq AtrA>s!\v \0 6 \0B\x007 AtAä€j!@@A¸þ\0(\0"A t"qE@A¸þ\0  r6\0  \x006\0 \0 6\f\v A AvkA\0 AGt! (\0!@ "(Axq F\r Av! At!  Aqj"("\r\0\v  \x006 \0 6\v \0 \x006\f \0 \x006\b\v (\b" \x006\f  \x006\b \0A\x006 \0 6\f \0 6\b\v\v?~@ \0­"§"  \0ArA€€I"\b"\0E\r\0 \0Ak-\0\0AqE\r\0 \0A\0 -\v \0\vð~@ E\r\0 \0 :\0\0 \0 j"Ak :\0\0 AI\r\0 \0 :\0 \0 :\0 Ak :\0\0 Ak :\0\0 AI\r\0 \0 :\0 Ak :\0\0 A\tI\r\0 \0A\0 \0kAq"j" AÿqA‚„\bl"\x006\0   kA|q"j"Ak \x006\0 A\tI\r\0  \x006\b  \x006 A\bk \x006\0 A\fk \x006\0 AI\r\0  \x006  \x006  \x006  \x006\f Ak \x006\0 Ak \x006\0 Ak \x006\0 Ak \x006\0  AqAr"k"A I\r\0 \0­B€€€~!  j!@  7  7  7\b  7\0 A j! A k"AK\r\0\v\v\v·| \0At"AÀˆj! Aàˆj+\0"D\0\0\0\0\0\0\0\0b@  +\0"¥" ¡ü ü€B|º ¢  " ¡!\v  9\0 \0 \0@A¨ˆ(\0AAA \0AF \0AF"\0Ak"vAq@A°ˆA°ˆ(\0A tr6\0\f\v \0At( w"@ \0 \0\v\v\v\r\0 \0A€j\0\v\0\0\v\0\0\và#\0A k"$\0  \0("6 \0(!  6  6AA  F"! Aj"A\br  !   k"6  j!@@@@ \0(<   A\fj"A°þ\0 6\0AA\0\vE@  (\f"F\r A\0N\r\f\v AG\r\v \0 \0(,"6 \0 6 \0  \0(0j6 \f\v A\bA\0  ("\bK"\tj"  \bA\0 \tk"\b (\0j6\0 A\fA \tj" (\0 \bk6\0  k!  \tk! !\f\v\v \0A\x006 \0B\x007 \0 \0(\0A r6\0A\0 AF\r\0  (k\v A j$\0\v\0\v\v\0 @ \v\v²@ A\0L\r\0@ \0 j",\0\0"Aÿq!A A\0N\r\0 A¿M@ Aj" N\r \0 j-\0\0 A\btA€þ\0qr!A\f\v A_M@ Aj" N\r \0 j-\0\0 AtA€€ü\0q -\0A\btrr!A\f\v AoM@ Aj" N\r \0 j-\0\0 AtA€€€ø\0q -\0Atr -\0A\btrr!A\f\v Aj" N\r \0 j-\0\0Aq -\0At Atr -\0A\ftr -\0Atrr!A\v  Atj 6\0 Aj! j" H\r\0\v\v \v\0 \vÁe+#\0A@j"\v$\0@ E@ A\x006\0A\b!\f\v \vB\x0070 \vB\x007( \vB\x007 \vB\x007 \vB\x007 \vB\x007\b \vB\x007\0 \0-\0\0!@@ AF\r\0A!\f AG\r\0 \0-\0A‹F\r\vAAq AqA\bF!\f\v \vA\b6$ \vA\t6 A\0AAÐ7"E\r\0 A\bjA\0AÈ7ü\v\0 \v 6 A´þ\x006  \v6\0@@@A\0 \fk \fAq \fA\0H""AK\r\0A tA€ÔqE\r\0 A\x0064 B\x007,  6( A\0 \fAvAj "6\f A\x006 \vA\x006, \vA\x006\b \vB\x007 \fA\0N@ \v Aq60\v B\x007< A\x006$ A€€6 B€€€€p7 B´þ\x007 B€€€p7Ä7  A´\nj"6p  6T  6PA€ At" A€ M"\b"E@A\0! \f\v \v 6\f \v 6 \v \x006\0 !@ \v 6@ \v( E\r \v($E\r \v("E\r (\0 \vG\r ("\0A´þ\0kAK\r \v(\f"\fE\r \v(\0"A E\r \0A¿þ\0F@ AÀþ\x006AÀþ\0!\0\v AÜ\0j!$ Aò\0j!% Aôj! AØ\0j! Að\0j! A´\nj! Aô\0j! (@! (<!\bA\0! ! !@A}!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \0A´þ\0k\t\b\f\0:<*+02 &>E\v (!\0\f8\v (!\n\f9\v (L!\r\f.\v (L!\r\f+\v (l!\f$\v (\f!\0\f\v AO\r E\r6 A\bj!\0 Aj! Ak!\t -\0\0 t \bj!\b AM\r ! \t! \0!\f\v A O\r E\r5 Aj!\0 Ak! -\0\0 t \bj!\b AM\r\r \0! !\f\v AO\r E\r4 A\bj!\0 Aj! Ak!\t -\0\0 t \bj!\b AM\r ! \t! \0!\f\v (\f"\nE\r@ AO\r\0 E\r4 A\bj!\0 Aj! Ak!\t -\0\0 t \bj!\b AK@ ! \t! \0!\f\v \tE@ !A\0! \0! !\f6\v Ar! Ak! -\0 \0t \bj!\b Aj!\v@ \nAqE\r\0 \bAŸ–G\r\0 ((E@ A6(\vA\0!\b A\x006 \vAŸ–;<A\0 \vA<jA\n!\0 Aµþ\x006  \x006A\0! (!\0\f8\v ($"\0@ \0A60\v@ \nAq@ \bA\btA€þq \bA\bvjApE\r\v \vAù\f6 AÑþ\x006 (!\0\f8\v \bAqA\bG@ \vAÇ6 AÑþ\x006 (!\0\f8\v \bAv"\0Aq"\tA\bj! \tAM (("\n \n  6( \v OqE@ Ak! \vAî\r6 AÑþ\x006 \0!\b (!\0\f8\v A6A\0! A\x006 A€ \tt6 \vA60 A½þ\0A¿þ\0 \bA€À\0q6A\0!\b (!\0\f7\v \tE@ !A\0! \0! !\f4\v Ar! Ak! -\0 \0t \bj!\b Aj!\v  \b6 \bAÿqA\bG@ \vAÇ6 AÑþ\x006 (!\0\f6\v \bA€Àq@ \vA¼\v6 AÑþ\x006 (!\0\f6\v ($"\0@ \0 \bA\bvAq6\0\v@ \bA€qE\r\0 -\0\fAqE\r\0 \vA\b:\0< \v \bA\bv:\0=  ( \vA<jA\n6\v A¶þ\x006A\0!A\0!\b\f\v AK\r\v E\r/ Aj!\0 Ak! -\0\0 t \bj!\b AK@ \0! !\f\v A\bj!\t E@ \0!A\0! \t! !\f1\v Aj!\0 Ak! -\0 \tt \bj!\b AK@ \0! !\f\v Aj!\t E@ \0!A\0! \t! !\f1\v Aj!\0 Ak! -\0 \tt \bj!\b AK@ \0! !\f\v Aj! E@ \0!\f0\v Ak! -\0 t \bj!\b Aj!\v ($"\0@ \0 \b6\v@ -\0AqE\r\0 -\0\fAqE\r\0 \v \b6<  ( \vA<jA\n6\v A·þ\x006A\0!A\0!\b\f\v AK\r\v E\r, Aj!\0 Ak! -\0\0 t \bj!\b AK@ \0! !\f\v A\bj! E@ \0!\f-\v Ak! -\0 t \bj!\b Aj!\v ($"\0@ \0 \bA\bv6\f \0 \bAÿq6\b\v@ ("\0A€qE\r\0 -\0\fAqE\r\0 \v \b;<  ( \vA<jA\n6\v A¸þ\x006A\0!A\0!A\0!\b \0A€\bq\r\f%\v ("\0A€\bqE@ !\f%\v \b! AK\r\v E@A\0! !\b !\f+\v Aj!\t Ak!\n -\0\0 t j!\b AK@ \t! \n!\f\v A\bj! \nE@ \t!\f*\v Ak! -\0 t \bj!\b Aj!\v  \b6D ($"@  \b6\vA\0!@ \0A€qE\r\0 -\0\fAqE\r\0 \v \b;<  ( \vA<jA\n6\vA\0!\b\f#\v A\bj!\t E@ \0!A\0! \t! !\f)\v Aj!\0 Ak! -\0 \tt \bj!\b AK@ \0! !\f\v Aj!\t E@ \0!A\0! \t! !\f)\v Aj!\0 Ak! -\0 \tt \bj!\b AK@ \0! !\f\v Aj! E@ \0!\f(\v Ak! -\0 t \bj!\b Aj!\v  \b \bAxsA€þƒxqA\bv \bA\bxs"\x006 \v \x0060 A¾þ\x006A\0!\bA\0!\v (E@ \v 6 \v \f6\f \v 6 \v 6\0  6@  \b6<\f.\v A6 \vA60 A¿þ\x006\v@ (\bE@  AK\r \r\f\'\v AÎþ\x006 \b Aqv!\b Axq! (!\0\f*\v Ak! -\0\0 t \bj!\b Aj! A\br\v  \bAq6\bAÁþ\0!\0@@@@ \bAvAqAk\0\v A æ\x006P B‰€€€Ð\x007X A ö\x006TAÇþ\0!\0\f\vAÄþ\0!\0\f\v \vA‚6AÑþ\0!\0\v  \x006Ak! \bAv!\b (!\0\f(\v Axq!\0 \b Aqv!\b AK@ ! \0\f\v E@A\0! \0! !\f&\v \0A\bj!\t Aj! Ak!\n -\0\0 \0t \bj!\b AK@ \n! \t\f\v \nE@ !A\0! \t! !\f&\v \0Aj!\n Aj! Ak!\r -\0 \tt \bj!\b AK@ \r! \n\f\v \rE@ !A\0! \n! !\f&\v \0Aj!\0 Aj! Ak!\t -\0 \nt \bj!\b AK@ \t! \0\f\v \tE@ !A\0! \0! !\f&\v Aj! Ak! -\0 \0t \bj!\bA \v! \bAÿÿq"\0 \bAsAvG@ \vA©\f6 AÑþ\x006 ! (!\0\f(\v  \x006DA\0!\b !A\0!\v AÃþ\x006\v (D"\0@ \0  \0 I"\0  \0 I"\0E@ !\f$\v \0@ \f  \0ü\n\0\0\v  (D \0k6D \0 \fj!\f  \0k! \0 j!  \0k! (!\0\f&\v A¿þ\x006 (!\0\f%\v \tE@ !A\0! \0! !\f"\v Ar! Ak! -\0 \0t \bj!\b Aj!\v  \bAq"\0Aj6d  \bAvAq"Aj6h  \bA\nvAqAj"\t6` Ak! \bAv!\b AI \0AMqE@ \vA…\f6 AÑþ\x006 (!\0\f$\v AÅþ\x006A\0!\0 A\x006l\f\t\v (l"\0 (`"\tI\r\b\f\t\v E\r \f (D:\0\0 AÈþ\x006 Ak! \fAj!\f (!\0\f!\v (\f"\0E@A\0!\0\f\v@ AK@ !\f\v E\r A\bj!\t Aj! Ak!\n -\0\0 t \bj!\b AK@ \n! \t!\f\v \nE@ !A\0! \t! !\f\v Aj!\n Aj! Ak!\r -\0 \tt \bj!\b AK@ \r! \n!\f\v \rE@ !A\0! \n! !\f\v Aj!\t Aj! Ak!\r -\0 \nt \bj!\b AK@ \r! \t!\f\v \rE@ !A\0! \t! !\f\v A r! Aj! Ak! -\0 \tt \bj!\b\v \v  k" \v(j6  ( j6 @ \0Aq"\tE\r\0  F\r\0 \f k!\t (!\n  (@ \n \t \n\f\v \n \t "\v"6 \v 60\f\v \t\r\f\v AÀþ\x006\f\v ( \b \b \bAxsA€þƒxqA\bv \bA\bxs (F\r\0 \vA§\r6 AÑþ\x006 ! ! (!\0\f\vA\0!\b !A\0! !\v AÏþ\x006\v@ \0E\r\0 (E\r\0@ AK@ !\f\v E\r A\bj!\t Aj! Ak!\n -\0\0 t \bj!\b AK@ \n! \t!\f\v \nE@ !A\0! \t! !\f\v Aj!\n Aj! Ak!\r -\0 \tt \bj!\b AK@ \r! \n!\f\v \rE@ !A\0! \n! !\f\v Aj!\t Aj! Ak!\r -\0 \nt \bj!\b AK@ \r! \t!\f\v \rE@ !A\0! \t! !\f\v A r! Aj! Ak! -\0 \tt \bj!\b\v@ \0AqE\r\0 \b ( F\r\0 \vA\r6 AÑþ\x006 ! (!\0\f\v !A\0!\bA\0!\v AÐþ\x006\vA!\f\v@ AM@ E\r Ak! -\0\0 t \bj!\b Aj! A\br!\v  \0Aj"6l  \0At/ð;Atj \bAq;\0 Ak! \bAv!\b "\0 \tG\r\0\v \t!\0\v \0AM@ \0!A\0!\n \0Aq"AG@@  At/ð;AtjA\0;\0 Aj!  \nAj"\nsAG\r\0\v\v@ \0AK\r\0A k"AqE@  At"\0Að;j/\0AtjA\0;\0  \0Aò;j/\0AtjA\0;\0  \0Aô;j/\0AtjA\0;\0  \0Aö;j/\0AtjA\0;\0 AI\r Aj!\v@  At"\0Að;j/\0AtjA\0;\0  \0Aò;j/\0AtjA\0;\0  \0Aô;j/\0AtjA\0;\0  \0Aö;j/\0AtjA\0;\0  \0Aø;j/\0AtjA\0;\0  \0Aú;j/\0AtjA\0;\0  \0Aü;j/\0AtjA\0;\0  \0Aþ;j/\0AtjA\0;\0 A\bj"AG\r\0\v\v A6l\v  6T  6p A6X  6PA\0!A\0 A   "@ \vA£\v6 AÑþ\x006 (!\0\f\v AÆþ\x006 A\x006lA\0!\v (d" (hj" K@A (XtAs! (P!@  \b q"\rAtj-\0"\t K@A\0!\r !\n !\t@ "\0 @@ \0-\0\0!\r \0Aj!\0 \nAk!\n \tA\bj"  \r \tt \bj"\b q"\rAtj-\0"\tO\r !\t \n\r\0\v !\r\v \rj!  \rAtj!\f\v \n! ! \0!\v@  \rAtj/"\nAM@  Aj"\x006l  Atj \n;\0  \tk! \b \tv!\b \0!\f\v@@@ \nAk\0\v \tAj"\0 K@@ E\r Ak! -\0\0 t \bj!\b Aj! A\bj" \0I\r\0\v\v  \tk! \b \tv!\0 E@ \vAë\v6 AÑþ\x006 \0!\b (!\0\f\v Ak! \0Av!\b \0AqAj!\r % Atj/\0\f\v \tAj"\0 K@@ E\r Ak! -\0\0 t \bj!\b Aj! A\bj" \0I\r\0\v\v \b \tv"\0Av!\b \0AqAj!\r  \tkAk\f\v \tAj"\0 K@@ E\r Ak! -\0\0 t \bj!\b Aj! A\bj" \0I\r\0\v\v \b \tv"\0Av!\b \0Aÿ\0qA\vj!\r  \tkAk\v!A\0\v!\0  \rj K\rA\0!\n \rAq"\t@  Atj \0;\0 Aj! \nAj"\n \tG\r\0\v \rAüq \r\v!\t@ \rAI\r\0A\0!\r \tAk"AvAjAq"@@  Atj"\n \0;\0 \n \0; \n \0; \n \0; Aj! \tAk!\t \rAj"\r G\r\0\v\v A\fI\r\0@  Atj"\n \0;\0 \n \0; \n \0; \n \0; \n \0; \n \0; \n \0; \n \0; \n \0; \n \0; \n \0;\f \n \0;\n \n \0;\b \n \0; \n \0; \n \0; Aj! \tAk"\t\r\0\v\v  6l\v  I\r\0\v\v /ôE@ \vAÔ\f6 AÑþ\x006 (!\0\f\v A\t6X  6P  6pA     "@ \vA‡\v6 AÑþ\x006 (!\0\f\v A6\\  (p6TA  (dAtj (h  $ "\rA\0!\v AÈþ\x006\v AI\r A‚I\r \v 6 \v 6\0 \v 6 \v \f6\f  6@  \b6< \f j"Ak! \f  kj!&  jAk! \v("(4"Axq!\' Aq!!  j!(  (,")j!*A (\\tAs!+A (XtAs!, (T!" (P!# (@!\b (<!\0 (8!\r (0!-@ \bAM@ -\0\0 \bt \0j -\0 \bA\bjtj!\0 \bAr!\b Aj!\v \b # \0 ,qAtj"-\0"k!\b \0 v!\0@@@@@@@@@@@@  \v@@ -\0\0"E@ \f -\0:\0\0 \fAj!\f\f\v Aq@ /!\t Aq"E@ ! \0\f\v  \bM@ ! \b\f\v Aj! -\0\0 \bt \0j!\0 \bA\bj\v k!\b \0A tAsq \tj!\t \0 v\v! \bAM@ -\0\0 \bt j -\0 \bA\bjtj! \bAr!\b Aj!\v \b "  +qAtj"-\0"\0k!\b  \0v!\0 -\0\0"Aq\r@ AÀ\0qE@ \b " /Atj \0A tAsqAtj"-\0"k!\b \0 v!\0 -\0\0"AqE\r\f\v\v !A±\f\v AÀ\0qE@ \b # /Atj \0A tAsqAtj"-\0"k!\b \0 v!\0\f\v\vA¿þ\0 A q\rA•\f\v /! Aq" \bM@ \b! \f\v -\0\0 \bt \0j!\0 Aj  \bA\bj"M\r\0 -\0 t \0j!\0 \bAj! Aj\v! \0A tAsq!  k!\b \0 v!\0  j" \f &k"M\r  k"\n -M\r (Ä7E\rA¼\r\v6AÑþ\0\v6\f\v\v E@ \r ) \nkj! \t \nM@ \f!\f\n\vA\0! \nAq"E\r \f! \n!@  -\0\0:\0\0 Ak! Aj! Aj! Aj" G\r\0\v\f\v \n K@ \r * \nkj! \n k"\n \tO@ \f!\f\n\vA\0! \nAq"E\r \f! \n!@  -\0\0:\0\0 Ak! Aj! Aj! Aj" G\r\0\v\f\v \r  \nkj! \t \nM@ \f!\f\t\vA\0! \nAq"E\r \f! \n!@  -\0\0:\0\0 Ak! Aj! Aj! Aj" G\r\0\v\f\v \f k!@ \f" "-\0\0:\0\0  -\0:\0  -\0:\0 Aj!\f Aj! \tAk"\tAK\r\0\v \tE\r\b  -\0\0:\0 \tAG@ Aj!\f\f\t\v  -\0:\0 Aj!\f\f\b\v \f! \n!\f\v \f! \n!\f\v \f! \n!\v   j jk \fjAxK\r@  -\0\0:\0\0  -\0:\0  -\0:\0  -\0:\0  -\0:\0  -\0:\0  -\0:\0  -\0:\0 A\bj! A\bj! A\bk"\r\0\v\f\v (  j jk \fjAxM@@  -\0\0:\0\0  -\0:\0  -\0:\0  -\0:\0  -\0:\0  -\0:\0  -\0:\0  -\0:\0 A\bj! A\bj! A\bk"\r\0\v\v  \t \nk"\tO@ \r!\f\vA\0! !@ \r!\f@  \f-\0\0:\0\0 Aj! \fAj!\f Aj" !G\r\0\v \'\f\v \r!\f \v! A\bO@@  \f-\0\0:\0\0  \f-\0:\0  \f-\0:\0  \f-\0:\0  \f-\0:\0  \f-\0:\0  \f-\0:\0  \f-\0:\0 A\bj! \fA\bj!\f A\bk"\r\0\v\v  k! \t k!\t\f\v   j jk \fjAxK\r\0@  -\0\0:\0\0  -\0:\0  -\0:\0  -\0:\0  -\0:\0  -\0:\0  -\0:\0  -\0:\0 A\bj! A\bj! A\bk"\r\0\v\v  k! \t \nk!\t\v@ \tAI\r\0A\0!\f \tAk"\nAnAjAq"@@  -\0\0:\0\0  -\0:\0  -\0:\0 Aj! Aj! \fAj"\f G\r\0\v A}l \tj!\t\v \nA\tI\r\0@  -\0\0:\0\0  -\0:\0  -\0:\0  -\0:\0  -\0:\0  -\0:\0  -\0:\0  -\0:\0  -\0\b:\0\b  -\0\t:\0\t  -\0\n:\0\n  -\0\v:\0\v A\fj! A\fj! \tA\fk"\tAK\r\0\v\v \tE@ !\f\f\v  -\0\0:\0\0 \tAG@ Aj!\f\f\v  -\0:\0 Aj!\f\v  O\r\0 \f I\r\v\v \v  \bAvk"6\0 \v \f6\f \v  \fkAj"6 \v kAj"6  \bAq"6@  \0A tAsq6< (@! (<!\b (A¿þ\0G\r\t A6È7 (!\0\f\v \vAÕ\v6 AÑþ\x006 (!\0\f\v \vAë\v6 AÑþ\x006 (!\0\f\v A\x006È7@ (P" \bA (XtAs"qAtj"\r-\0"\n M@ !\0 ! !\t\f\vA\0!\t ! !\n "\0 @@ \0-\0\0! \0Aj!\0 Ak! \nA\bj"\t   \nt \bj"\b qAtj"\r-\0"\nO\r \t!\n \r\0\v !\t\v \tj!  \tAtj!\f\v \n! \r/!@ \r-\0\0"\rAkAÿqAK@A\0! \0! !\f\v@ \t   Atj" \bA  \rjtAs"q vAtj"-\0"\njO@ \0! !\f\vA\0!\n \0! \t!\r@ "@@ -\0\0!\n Aj! Ak! \rA\bj"   \n \rt \bj"\b q vAtj"-\0"\njO\r !\r \r\0\v !\n\v \0 \nj! \t \nAtj!\f\v !\t\v \t k!\t \b v!\b -\0\0!\r /!\v  Aÿÿq6D   \nj6È7 \t \nk! \b \nv!\b \rAÿq"\0E@ AÍþ\x006 (!\0\f\v \0A q@ A¿þ\x006 A6È7 (!\0\f\v \0AÀ\0q@ \vA•6 AÑþ\x006 (!\0\f\v AÉþ\x006  \0Aq"\r6L\v@ \rE@ (D!\0\f\v  \rI@A\0!\t !\n ! !\0@ @@ \nAj!\t Ak! \n-\0\0 \0t \bj!\b \0A\bj"\0 \rO\r \t!\n \r\0\v !\t\v  \tj!  \tAtj!\f\v ! \0! \t!\v  (È7 \rj6È7  (D \bA \rtAsqj"\x006D  \rk! \b \rv!\b\v AÊþ\x006  \x006Ì7\v@ (T" \bA (\\tAs"qAtj"\r-\0"\n M@ ! !\0 !\t\f\vA\0!\t !\n " "\0@@ -\0\0! Aj! \0Ak!\0 \nA\bj"\t   \nt \bj"\b qAtj"\r-\0"\nO\r \t!\n \0\r\0\v !\t\v \tj!  \tAtj!\f\r\v \r/!  \r-\0\0"AO@ \n! (È7\f\v \t \n  Atj" \bA  \njtAs"q \nvAtj"-\0"jI@A\0! ! \t!\r \0"E@A\0!\0\f\b\v@@ -\0\0! Aj! Ak! \rA\bj" \n   \rt \bj"\b q \nvAtj"-\0"jO\r\0 !\r \r\f\t\v\v ! !\t !\0\v \t \nk!\t \b \nv!\b -\0\0! /! (È7 \nj\v j6È7 \t k! \b v!\b AÀ\0q@ \vA±6 AÑþ\x006 ! \0! (!\0\f\v AËþ\x006  Aq"\r6L  Aÿÿq6H ! \0!\v \r@  \rI@A\0!\t !\n ! !\0@ @@ \nAj!\t Ak! \n-\0\0 \0t \bj!\b \0A\bj"\0 \rO\r \t!\n \r\0\v !\t\v  \tj!  \tAtj!\f\v ! \0! \t!\v  (È7 \rj6È7  (H \bA \rtAsqj6H \b \rv!\b  \rk!\v AÌþ\x006\v \r\vA\0! !\f\n\v (H"\0  k"K@@ \0 k" (0M\r\0 (Ä7E\r\0 \vA¼\r6 AÑþ\x006 (!\0\f\v (4"\0 I@ (8 (,  \0k"kj\f\v (8 \0 kj\v!\0  (D"\n  \nI\f\v \f \0k!\0 (D"\n\v!  \n    I"\tk6D \tAkA\0! \tAq"\r@ \f \0-\0\0:\0\0 \fAj!\f \0Aj!\0 Aj" \rG\r\0\v \tAxq \t\v!AO@@ \f \0-\0\0:\0\0 \f \0-\0:\0 \f \0-\0:\0 \f \0-\0:\0 \f \0-\0:\0 \f \0-\0:\0 \f \0-\0:\0 \f \0-\0:\0 \fA\bj!\f \0A\bj!\0 A\bk"\r\0\v\v  \tk! (D\r\0 AÈþ\x006 (!\0\f\f\v (!\0\f\v\v \0 j! \t \0Atj! !\f\v ($"@ A\x006\v !\v A¹þ\x006\v@ \0A€\bqE\r\0 (D"   K"\t@@ ($"\nE\r\0 \n("E\r\0 \n("\r \n( k"M\r\0 \r k \t  \tj \rK"\0@  j  \0ü\n\0\0\v (!\0\v@ \0A€qE\r\0 -\0\fAqE\r\0  (  \t\n6\v  (D \tk"6D  \tk!  \tj!\v E\r\0 !\f\v Aºþ\x006 A\x006D\v@ ("\nA€q@A\0!\0 E\r@ \0 j-\0\0!@ ($"\tE\r\0 \t("\rE\r\0 (D"\n \t( O\r\0  \nAj6D \n \rj :\0\0\v A\0  \0Aj"\0K\r\0\v@ ("\nA€qE\r\0 -\0\fAqE\r\0  (  \0\n6\v \0 j!  \0k! E\r !\f\v ($"\0E\r\0 \0A\x006\v A»þ\x006 A\x006D\v@ \nA€ q@A\0!\0 E\r@ \0 j-\0\0!@ ($"\tE\r\0 \t($"\rE\r\0 (D"\n \t((O\r\0  \nAj6D \n \rj :\0\0\v A\0  \0Aj"\0K\r\0\v@ -\0AqE\r\0 -\0\fAqE\r\0  (  \0\n6\v \0 j!  \0k! E\r !\f\v ($"\0E\r\0 \0A\x006$\v A¼þ\x006\v ("\nA€qE\r@ AK@ !\0\f\v E\r A\bj! Aj!\0 Ak!\t -\0\0 t \bj!\b AK@ \t! !\f\v \tE@ \0!A\0! ! !\f\v Ar! Aj!\0 Ak! -\0 t \bj!\b\v -\0\fAqE\r \b /F\r \vAÚ\r6 AÑþ\x006 \0! (!\0\f\vA\0! !\v \v 6 \v \f6\f \v 6 \v 6\0  6@  \b6<@@@@ (,E@  F\r (AÐþ\0K\r\v \v("\0(8"\bE@ \0 \v((A \0((tA \v( \0"\b68 \bE\r\v \0(,"E@ \0B\x0070 \0A \0((t"6,\v@  k" O@ @ \b \f k ü\n\0\0\v \0A\x0064 \0 \0(,60\f\v  \0(4"k"   I"@ \b j \f k ü\n\0\0\v  I@  k"@ \0(8 \f k ü\n\0\0\v \0 64 \0 \0(,60\f\v \0 \0(4 j"A\0  \0(,"G64 \0(0" O\r\0 \0  j60\v \v(! \v(!\v \v \v(\b  kj6\b \v  k" \v(j"\x006  ( j6 @ -\0\fAqE\r\0  F\r\0 \v(\f k! (!  (@   \n\f\v   "\v"6 \v 60\v \v (@AÀ\0A\0 (\bjA€A\0 ("A¿þ\0FjA€A€A\0 AÂþ\0F AÇþ\0Fj6,@  G\r\0  G\r\0 E\r\v Aj\t\t\t\t\t\v AÒþ\x006\f\b\v ! \r  At""\0E@ \v( E\r\t \v($"E\r\t \v("\0E\r\t \0(\0 \vG\r\t \0(A´þ\0kAK\r\t \0(8"@ \v((  \0\0 \v($! \v(!\0\v \v(( \0 \0\0 \vA\x006\f\t\v \v \0 j6\f ! ! \0!\f\v@ \v( E\r\0 \v($"\fE\r\0 \v("E\r\0 (\0 \vG\r\0 (A´þ\0kAK\r\0 \v((!\0 (8" \0  \f\0\0 \v(! \v($!\f \v(( \0\v  \f\0\0 \v(!\0\v  \x006\0\f\b\v \0!A\0!\bA\0!\v ($"\0@ \0A60 \0 \nA\tvAq6,\v A\x006 \vA\x0060 A¿þ\x006 (!\0\f\0\v\0\v\0\v\0\v \f\v \v( E\r\0 \v($"\fE\r\0 \v("E\r\0 (\0 \vG\r\0 (A´þ\0kAK\r\0 \v((!\0 (8" \0  \f\0\0 \v(! \v($!\f \v(( \0\v  \f\0\0\v A\0!\v \vA@k$\0 \vi#\0Ak"$\0@ E@ A\x006\0A\b!\f\v \b"E@A\0!\f\v  6\f  A\fj \0 )@ A\0!\f\v  (\f6\0\v Aj$\0 \vä!~#\0Ak"$\0@ A\tI\r\0 \0-\0At"A\0H\r\0 \0/\0\0 \0-\0Atr r"Aþ÷ÿÿJ\r\0 \0(\0"\fA\0L\r\0 \fA­âO@AèA2\f\v \0-\0\b! \fAj"A\fl"A˜ˆj\v"\bE\r\0 \bB\x007 \b 6”ˆ \bA\x006„ \bA\x006€ \b \bA˜ˆj"6\0 \bA\fjA\0A„ü\v\0 @ A\0 ü\v\0\v \bA\x006œˆ \bA6ˆA\t!@@ A\tG@ \0 j!\n \fAk! \bAj!A!@ Aj!\t \0 j"\r-\0\0"À!@@@ AÀ\0q@ Aj" K\r \0 \tj-\0\0!\t \r-\0! A\0N@ Aq!\f\v Aþ\0J\r \b Aj6ˆ  Aj"A€lj"\rA\0A€ü\v\0 Aq"E@A\0! !\f\v AH\r \r \f\b"6\0 E\r \r \f6 \rA\x006\b  :\0\0 @ \r(\0AjA\n ü\v\0\v !\f\v@ A\0N@ Aq!\v !\r\f\v Aþ\0J\r \b Aj6ˆ  Aj"\rA€lj"A\0A€ü\v\0 Aq"\vE@A\0!\v\f\v AH\r  \f\b"6\0 E\r  \f6 A\x006\b  \v:\0\0 E\r\0 (\0AjA\n ü\v\0\v \0 \tj!@ @  \tk"AN@ ,\0\0A\0N@ Aj!\f\v ,\0A\0N@ Aj!\f\v ,\0A\0N@ Aj!\f\v ,\0A\0N@ Aj!\f\v AA ,\0A\0Hj!\f\v  \tF@A\0!\f\vA ",\0\0A\0N\r@ Aj! ,\0\0A\0N\r \n "K\r\0\v\v  kAj\v"j!  kAN@ ,\0\0"Aÿ\0q! A\0N\r ,\0"Aÿ\0q Atr! A\0N\r ,\0"Aÿ\0q Atr! A\0N\r ,\0"Aÿ\0q Atr! A\0N\r ,\0"Aÿ\0q Atr! A\0N\r -\0Aÿ\0q Atr!\f\v  N@A\0!\f\vA\0! ,\0\0"A\0N\r\0@ ,\0\0"Aÿ\0q Atr! A\0N@ !\f\v ! Aj" \nI\r\0\v\v AþÿÿÿK\r \rA\0H\r \rAt"A\0H\r  \vr"AÿJ\r  Alj"A\x006\b (\0"@ \v  \b"\v6\0 \vE\r ­!  6 ~@@@@@ AL@ E\r  6\bA\0!A\0  \tF\r ! ,\0\0"A\0H\r !A\f\v Aj! E@  6\f ,\0\0"Aÿ\0q! A\0N\r ,\0"Aÿ\0q Atr! A\0H\r Aj!\f\v  6\b ,\0\0"Aÿ\0q! A\0N\r ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v -\0Aÿ\0q Atr! Aj!\f\v@ ,\0\0"Aÿ\0q Atr! Aj! A\0N\r  \nI\r\0\v\v  k\v" jA  j  k \v A\bj"! 5\b  \f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v -\0Aÿ\0q Atr! Aj!\f\v  6\fA\0!A\0  \tF\r ! ,\0\0"A\0N@ !A\f\v@ ,\0\0"Aÿ\0q Atr! Aj! A\0N\r  \nI\r\0\v\v  k\v" jA  j  k \v A\fj"! 5\f  \v"> A\0H\r  R\r  \tj! \r!\f\v A\0H\r\v \tAt j" At r"N\r  Alj"\r(\0E\r  Alj"A\x006\b  \r("6 (\0"\t@ \t (!\v  \b"6\0 E\r E\r\0  \r(\0 ü\n\0\0\v  K\r\0\v\v A€\bj"\f\b"E\r\0A\0!\r@@@ \b("\0 \b(I@ \bAj! \bA@k! !@ \b \0Aj6 \b( \0j-\0\0!\0 \b \b("\tAj6 \t \b(”ˆN\r \b(ˆAt \0L\r  \0Alj"(\b"Aj" (K\r (\0 j(\0\0!  6\b  \tK\r \t k"A\0 A\0J!@ \0AF@ \t F\r A\fl" \b(\0j(\0"\0Aj \fO\r@@ \0 "sAq@ \0-\0\0!\f\v \0Aq@@  \0-\0\0":\0\0 E\r Aj! \0Aj"\0Aq\r\0\v\vA€‚„\b \0(\0"k rA€‚„xqA€‚„xG\r\0@  6\0 Aj! \0"Aj!\0A€‚„\b ("k rA€‚„xqA€‚„xF\r\0\v\v  :\0\0 AÿqE\r\0@  \0-\0":\0 Aj! \0Aj!\0 \r\0\v\v \b(\0" \tA\flj"\0 6\0 \0  j"("6 \0 A\flA€\f \b"6\b E\r \0(A\fl"\0@  (\b \0ü\n\0\0\v Aj!\0\f\vA\0! A\0:\0\0A€\f\b!\0 \b(\0" \tA\fl"\tj \x006\bA! \0E\r@  \b(ˆN\r@  A€l"\nj"\0(\b" \0(O@  \tjA\x006\f\v \0 Aj6\b \0(\0 j-\0\0!  \tj"\vA\x006@@@@@@@@@ Ak\v\0\t\t\t\t\v Aj"\0 \fN\r \n j"(\b" (O\r  Aj6\b  j" (\0 j-\0\0:\0\0 \b(\0" \tj(\b A\flj"A6\0  ,\0\x006 \0!\f\v  j!\v \f k!A!@ \b A€lj"(0"\n (,O\r\0A\0!\0@  \nAj60 \v \0"j (( \nj-\0\0"\0:\0\0 \0E\r Aj"\0 N\r (0"\n (,I\r\0\v\v "\0A\0H\r\r \b(\0" \tj(\b A\flj" 6\b A6\0  \x006 \0 j!\f\v \0(h" \0(dO\r\f \0 Aj6h \0(P"\nAj"\v \0(LK\r\f \0(` j-\0\0! \0(H \nj(\0\0!\n \0 \v6P  jAj \fO\r\f  j \n !\v \b(\0" \tj(\b A\flj"\0 6\b \0 \n6 \0A6\0  \vj!\f\v   A\fl"\nj"\v(N\r\v \0(à" \0(ÜO\r\v \0 Aj6à  A\fl" \v(\bj"\v(\b"jAj \fN\r\v  j \v( \0(Ø j-\0\0j"\v Aÿq! \b(\0" \tj(\b j"\0 \v6 \0A6\0 \0  \nj(\b j(\b6\b  j!\f\v \0(°"Aj"\n \0(¬K\r\n \0(¨ j(\0\0! \0 \n6° Aj \fN\r\n  j  \b(\0" \tj(\b A\flj"\n 6 \nA6\0 j!\f\v   A\flj"(N\r\t \0(È" \0(ÄO\r\t \0 Aj6È Aj \fN\r\t  j A\fl"\n (\bj( \0(À j-\0\0j"\0! \b(\0" \tj(\b \nj"\n \x006 \nA6\0  j!\f\v   A\fl"\nj"\v(N\r\b@@@@ A\fl" \v(\bj"(\0Ak\0\f\f\f\f\v Aj"\0 \fN\r\v  j (:\0\0 \b(\0" \tj(\b j"A6\0   \nj(\b j(6 \0!\f\v ("\0A\0H\r\n \0 j \fN\r\n \0@  j \v(\0 (\bj \0ü\n\0\0\v \b(\0" \tj(\b j"\0 6\b \0A6\0 \0  \nj(\b j("\x006 \0 j!\f\v Aj \fN\r\t  j ( \b(\0" \tj(\b j"\vA6\0 \v  \nj(\b j(6 j!\f\v (\b"\0 j \fN\r\b  j ( \0Aÿq!\v \b(\0" \tj(\b j"\0A6\0 \0  \nj(\b j"(6 \0 (\b6\b  \vj!\f\v \v(\b A\fljA\v6\0\v Aj"A€G\r\f\v\v Aj"\0 \fN\r  jA\0:\0\0 \b(\0 \tj"(\b" A\fl"jA\f6\0  6  6\0  A\fj! \b(\0 \tj! E@ (\b\r\f\v  6\b\v \0A\0L\r \f \0k!\f  \0 \rj"\rj! \b("\0 \b(I\r\0\v\v \b \b("\0Aj6 \0 \b(”ˆN\r\f\v \0E\r\v  \b  \r6\0\f\v \b  \r6\0\f\v \b\vA\0!\v Aj$\0 \v\f\0 \0 A\0 \vÃ)#\0A€k"$\0@ AI\r\0 AþÿÿÿK\r\0A€æÂ\0\v"E\r\0@@@@@A€€\v"E\r\0@ \0-\0\0"\nAðqAÀF@@ A€j"\t Atj  A³!lj6\0 Ar"At \tj  A³!lj6\0 Ar"At \tj  A³!lj6\0 Ar"At \tj  A³!lj6\0 Aj"A€G\r\0\f\v\0\v@ A€j"\t Atj  A³\tlj6\0 Ar"At \tj  A³\tlj6\0 Ar"At \tj  A³\tlj6\0 Ar"At \tj  A³\tlj6\0 Aj"A€G\r\0\v\v E@ \b"E@\f\v ! \0-\0\0!\n\v \0 j! \0Aj!@ \nAqE@ \f\v@@ AN@ \0,\0"Aÿ\0q! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0-\0Aÿ\0q Atr! \0Aj!\f\v ,\0\0"\0A\0N\r !@ ,\0\0"\0Aÿ\0q Atr! Aj! \0A\0N\r  I\r\0\v\v  k\f\v \0!A\v"\b j!@  \bAsj@@ \b kAyL@ ,\0\0"Aÿ\0q!\0 A\0N@ Aj!\f\v ,\0"Aÿ\0q \0Atr!\0 A\0N@ Aj!\f\v ,\0"Aÿ\0q \0Atr!\0 A\0N@ Aj!\f\v ,\0"Aÿ\0q \0Atr!\0 A\0N@ Aj!\f\v ,\0"Aÿ\0q \0Atr!\0 A\0N@ Aj!\f\v -\0Aÿ\0q \0Atr!\0 Aj!\f\vA\0!\0 \bAj N\r ,\0\0"\tA\0N\r !@ ,\0\0"\tAÿ\0q \0Atr!\0 Aj! \tA\0N\r  I\r\0\v\v  k\f\v \t!\0A\v"k \0I\r  j!\v  \0A\0 "E\r \0 j!\f  "j\v!\bA\0! A€\bjA\0A€\bü\v\0  \bF\r Aj! -\0\0!@ Aj \bO\r\0@ A€\bj AtjA6\0@ E@ Aj"\0 -\0\0"G@ Aj!A\0!\f\v -\0! Aj! \0!\f\v AþJ\r Aj! Ak!\v E\r Aj \bI\r\0\v\v@ E\r\0@ A€\bj AtjA6\0  \bO\r@ E@ Aj!\0A\0! Aj" -\0\0"\tG@ \0! \t!\f\v \0 \bO\r -\0! Aj!\f\v AþJ\r Aj! Ak!\v E\r  \bI\r\0\v\v  F\r  \bO\r \nAðqAv"A\nF AŸKq!A t!@ At" A€\bjj(\0@A\0!\v A\0A€\bü\v\0A\0!A\0!\0 !\n  \bO\r@ \0At"\r A€\bjj(\0@@  Ak@ \b \nkAN@ \n,\0\0"Aÿ\0q! A\0N@ \nAj!\f\v \n,\0"Aÿ\0q Atr! A\0N@ \nAj!\f\v \n,\0"Aÿ\0q Atr! A\0N@ \nAj!\f\v \n,\0"Aÿ\0q Atr! A\0N@ \nAj!\f\v \n,\0"Aÿ\0q Atr! A\0N@ \nAj!\f\v \n-\0Aÿ\0q Atr! \nAj!\f\vA\0! \n",\0\0"\tA\0N@ \t!A\f\v@ ,\0\0"\tAÿ\0q Atr! Aj! \tA\0N\r  \bI\r\0\v\v  \nk\v \nj!\tA\0! @ \t!\n\f\v \b \tM\r \tAj!\n \t-\0\0\v!A\0!\v \r j 6\0  \vj!\v\v \0AþM@ \0Aj!\0 \b \nK\r\v\v  \nF\r \v@ \v G@A\0!\0A\0! \v I@@ Aj! \vAt"\v I\r\0\v\v@  \0Atj" (\0 t6\0  ( t6  (\b t6\b  (\f t6\f  ( t6  ( t6  ( t6  ( t6 \0A\bj"\0A€G\r\0\v\v  A\ftj!  A\ntj! A€j j!A\0!\tA\0!\r@  \tAt"\0j(\0"@   \rkK\r@ @ Aq!\v At!\0  \rAtj!@ AM@ \0 \tr!\0A\0!\f\v \0 \tr!\0 A|q!A\0!@  Atj A\bt \0r6\0  Ar"Atj A\bt \0r6\0  Ar"Atj A\bt \0r6\0  Ar"Atj A\bt \0r6\0 Aj" G\r\0\v \vE\r\vA\0!@  Atj A\bt \0r6\0 Aj! Aj" \vG\r\0\v\f\v @ (\0 \rj \t ü\v\0\v \0 j"\0 \r; \0 ;\0\v  \rj!\r\v \tAj"\tA€G\r\0\v \r G\r\v \n!\v Aj"A€G\r\0\v A\0! \f  \f"Aj" K\r (\0\0"\0A€€I\r (\0"A€€I\r (\0\b"\bA€€I\r (\0\f"A€€I\r A\bk! Av"Al! At!\n A\fF@A\0!\v E@A\0!A\0!\f\vA\0!A\0! !\tA\0!\r@  \vA\ntj \0Aÿq" A€j" \vAtj(\0j-\0\0"\vAtj"\f/! \f/\0  \rj \v:\0\0  A\ntj Aÿq" At j(\0j-\0\0"Atj"/! /\0!  \tj :\0\0  A\ntj \bAÿq" At j(\0j-\0\0"Atj"/! /\0!  \nj :\0\0  A\ntj Aÿq" At j(\0j-\0\0"Atj"/! /\0!  j :\0\0 \0A\fvl j k!\0  A\fvl j k!  \bA\fvl j k!\b  A\fvl j k!@  I@ AA\0 \0A€€I"j"AA\0 A€€I"j"\f-\0A\bt \f-\0\0 \bAtrr \b \bA€€I"!\b \fAA\0 j"\f-\0A\bt \f-\0\0 Atrr  A€€I"! -\0\0 \0Atr -\0A\btr \0 !\0 -\0\0 Atr -\0A\btr  ! \fAA\0 j!\f\v@ \0AÿÿK\r\0 Aj O\r\0 -\0\0 \0Atr -\0A\btr!\0 Aj!\v@ AÿÿK\r\0 Aj O\r\0 -\0\0 Atr -\0A\btr! Aj!\v@ \bAÿÿK\r\0 Aj O\r\0 -\0\0 \bAtr -\0A\btr!\b Aj!\v AÿÿK\r\0 Aj O\r\0 -\0\0 Atr -\0A\btr! Aj!\v Aj! \nAj!\n \tAj!\t  \rAj"\rG\r\0\v\f\v@@ AŸM@A\0!\v \rA\0!A\0!\f\vA\0!\v \rA\0!\f\vA\0!A\0! !\tA\0!\r@  \vA\ntj \0Aÿq" A€j" \vAtj(\0j-\0\0"\vAtj"\f/! \f/\0  \rj \v:\0\0  A\ntj Aÿq" At j(\0j-\0\0"Atj"/! /\0!  \tj :\0\0  A\ntj \bAÿq" At j(\0j-\0\0"Atj"/! /\0!  \nj :\0\0  A\ntj Aÿq" At j(\0j-\0\0"Atj"/! /\0!  j :\0\0 \0A\nvl j k!\0  A\nvl j k!  \bA\nvl j k!\b  A\nvl j k!@  I@ AA\0 \0A€€I"j"AA\0 A€€I"j"\f-\0A\bt \f-\0\0 \bAtrr \b \bA€€I"!\b \fAA\0 j"\f-\0A\bt \f-\0\0 Atrr  A€€I"! -\0\0 \0Atr -\0A\btr \0 !\0 -\0\0 Atr -\0A\btr  ! \fAA\0 j!\f\v@ \0AÿÿK\r\0 Aj O\r\0 -\0\0 \0Atr -\0A\btr!\0 Aj!\v@ AÿÿK\r\0 Aj O\r\0 -\0\0 Atr -\0A\btr! Aj!\v@ \bAÿÿK\r\0 Aj O\r\0 -\0\0 \bAtr -\0A\btr!\b Aj!\v AÿÿK\r\0 Aj O\r\0 -\0\0 Atr -\0A\btr! Aj!\v Aj! \nAj!\n \tAj!\t  \rAj"\rG\r\0\v\f\vA\0!A\0! !\tA\0!\r@  A\ftj AÿqAtj(\0!  \rj  A\ftj \0AÿqAtj(\0":\0\0  \tj :\0\0  \vA\ftj AÿqAtj(\0!\v  \nj  A\ftj \bAÿqAtj(\0":\0\0  j \v:\0\0 Av A\nvl A\bvAÿqj! Av \0A\nvl A\bvAÿqj!\0 \vAv A\nvl \vA\bvAÿqj! Av \bA\nvl A\bvAÿqj!\b@  I@ AA\0 \0A€€I"j"AA\0 A€€I"j"\f-\0A\bt \f-\0\0 \bAtrr \b \bA€€I"!\b \fAA\0 j"\f-\0A\bt \f-\0\0 Atrr  A€€I"! -\0\0 \0Atr -\0A\btr \0 !\0 -\0\0 Atr -\0A\btr  ! \fAA\0 j!\f\v@ \0AÿÿK\r\0 Aj O\r\0 -\0\0 \0Atr -\0A\btr!\0 Aj!\v@ AÿÿK\r\0 Aj O\r\0 -\0\0 Atr -\0A\btr! Aj!\v@ \bAÿÿK\r\0 Aj O\r\0 -\0\0 \bAtr -\0A\btr!\b Aj!\v AÿÿK\r\0 Aj O\r\0 -\0\0 Atr -\0A\btr! Aj!\v Aÿq! Aÿq! \vAÿq!\v Aÿq! Aj! \nAj!\n \tAj!\t  \rAj"\rG\r\0\v\f\vA\0!\v \t \t  \f\v  M\r@  j  \vA\ftj AÿqAtj(\0"\0:\0\0@ \0Av A\nvl \0A\bvAÿqj"AÿÿK\r\0 Aj O\r\0 -\0\0 Atr -\0A\btr! Aj!\v \0Aÿq!\v  Aj"G\r\0\v\f\v  M\r@  j Aÿq"\n A€j "\0Atj(\0j-\0\0":\0\0@  \0A\ntj Atj"\0/\0 A\nvl \nj \0/k"AÿÿK\r\0 Aj O\r\0 -\0\0 Atr -\0A\btr! Aj!\v Aj" G\r\0\v\f\v  M\r\0@  j Aÿq"\n A€j "\0Atj(\0j-\0\0":\0\0@  \0A\ntj Atj"\0/\0 A\fvl \nj \0/k"AÿÿK\r\0 Aj O\r\0 -\0\0 Atr -\0A\btr! Aj!\v Aj" G\r\0\v\v \t \t !\v A€j$\0 \v/#|#\0Ak"$\0@ A€I\r\0 AþÿÿÿK\r\0A€æÒ\0\v"E\r\0@ \0-\0\0"\fAðqAÀF@@ A€j" Atj  A³!lj6\0 A€F\r Ar"At j  A³!lj6\0 Ar"At j  A³!lj6\0 Ar"At j  A³!lj6\0 Aj!\f\0\v\0\v@ A€j" Atj  A³\tlj6\0 A€F\r Ar"At j  A³\tlj6\0 Ar"At j  A³\tlj6\0 Ar"At j  A³\tlj6\0 Aj!\f\0\v\0\v (€\v!@@ E@ \b"E@\f\v \0-\0\0!\f !\v \0 j! \0Aj!\n \fAqE@ \f\v@@ AN@ \0,\0"Aÿ\0q! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0-\0Aÿ\0q Atr! \0Aj!\f\vA\0! \n,\0\0"\0A\0N\r \n!@ ,\0\0"\0Aÿ\0q Atr! Aj! \0A\0N\r  I\r\0\v\v  \nk\f\v \0!A\v" \nj!\b@  Asj@@  kAyL@ \b,\0\0"Aÿ\0q!\0 A\0N@ \bAj!\f\v \b,\0"Aÿ\0q \0Atr!\0 A\0N@ \bAj!\f\v \b,\0"Aÿ\0q \0Atr!\0 A\0N@ \bAj!\f\v \b,\0"Aÿ\0q \0Atr!\0 A\0N@ \bAj!\f\v \b,\0"Aÿ\0q \0Atr!\0 A\0N@ \bAj!\f\v \b-\0Aÿ\0q \0Atr!\0 \bAj!\f\vA\0!\0 Aj N\r \b,\0\0"\nA\0N\r \b!@ ,\0\0"\nAÿ\0q \0Atr!\0 Aj! \nA\0N\r  I\r\0\v\v  \bk\f\v \n!\0A\v"k \0I\r  \bj!\b\v \b \0A\0 "E\r \0 \bj! "\n j\v!\v \fAðqAv!A\0!\f AjA\0A€\bü\v\0@ \n \vF\r\0 \nAj!\0 \n-\0\0!A\0!@ \nAj \vO\r\0@ Aj AtjA6\0@@ E@ Aj" \0-\0\0"F\r \0Aj!\0A\0!\f\v AþL@ Aj! Ak!\f\v\f\v \0-\0! \0Aj!\0 !\v E\r \0Aj \vI\r\0\v\v@ E\r\0@ Aj AtjA6\0 \0 \vO\r@ E@ \0Aj!\bA\0! Aj" \0-\0\0"G@ \b!\0 !\f\v \b \vO@\f\v \0-\0! \0Aj!\0\f\v AþJ\r Aj! Ak!\v E\r \0 \vI\r\0\v\v \0 \nF\r\0 \0 \vO\r\0 @ A\0;\v A\x006\0A t! A\nk!@ At" Ajj(\0@A\0!\r A\vjA\0A€\bü\v\0A\0!A\0!\f \0!@@ \0 \vO\r\0@ \fAt" Ajj(\0@@  Ak@ \v kAN@ ,\0\0"Aÿ\0q! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v -\0Aÿ\0q Atr! Aj!\f\vA\0! ",\0\0"\bA\0N@ \b!A\f\v@ ,\0\0"\bAÿ\0q Atr! Aj! \bA\0N\r  \vI\r\0\v\v  k\v j!\bA\0! @ \b!\f\v \b \vO\r \bAj! \b-\0\0\v!A\0!\v A\vj j 6\0  \rj!\r\v \fAþM@ \fAj!\f  \vI\r\v\v \0 F\r\0 \rE\r \r G@A\0!\0A\0! \r I@@ Aj! \rAt"\r I\r\0\v\v@ A\vj \0Atj" (\0 t6\0  ( t6  (\b t6\b  (\f t6\f  ( t6  ( t6  ( t6  ( t6 \0A\bj"\0A€G\r\0\v\v  A\ntj!  A\ftj!\r A€j j!A\0!A\0!@ At"\0 A\vjj(\0"@   kK\r@@@@@ \0\v Aq! At!\0 \r Atj! AK\r \0 r!\0A\0!\f\v @ (\0 j  ü\v\0\v \0 j"\0 ; \0 ;\0\f\v \0 r!\0 A|q!\bA\0!@  Atj A\bt \0r6\0  Ar"Atj A\bt \0r6\0  Ar"Atj A\bt \0r6\0  Ar"Atj A\bt \0r6\0 Aj" \bG\r\0\v E\r\vA\0!\f@  Atj A\bt \0r6\0 Aj! \fAj"\f G\r\0\v\v  j!\v Aj"A€G\r\0\v  F\r\vA\0!\f\f\v !\0\v Aj"A€G\r\0\v \0 \nk!\f\v    \n \fj "kA€H\r\0  (\0\0"\x006€ \0A€€I\r\0  (\0"\x006„ \0A€€I\r\0  (\0\b"\x006ˆ \0A€€I\r\0  (\0\f"\x006Œ \0A€€I\r\0  (\0"\x006 \0A€€I\r\0  (\0"\x006” \0A€€I\r\0  (\0"\x006˜ \0A€€I\r\0  (\0"\x006œ \0A€€I\r\0  (\0 "\x006  \0A€€I\r\0  (\0$"\x006¤ \0A€€I\r\0  (\0("\x006¨ \0A€€I\r\0  (\0,"\x006¬ \0A€€I\r\0  (\x000"\x006° \0A€€I\r\0  (\x004"\x006´ \0A€€I\r\0  (\x008"\x006¸ \0A€€I\r\0  (\0<"\x006¼ \0A€€I\r\0  (\0@"\x006À \0A€€I\r\0  (\0D"\x006Ä \0A€€I\r\0  (\0H"\x006È \0A€€I\r\0  (\0L"\x006Ì \0A€€I\r\0  (\0P"\x006Ð \0A€€I\r\0  (\0T"\x006Ô \0A€€I\r\0  (\0X"\x006Ø \0A€€I\r\0  (\0\\"\x006Ü \0A€€I\r\0  (\0`"\x006à \0A€€I\r\0  (\0d"\x006ä \0A€€I\r\0  (\0h"\x006è \0A€€I\r\0  (\0l"\x006ì \0A€€I\r\0  (\0p"\x006ð \0A€€I\r\0  (\0t"\x006ô \0A€€I\r\0  (\0x"\x006ø \0A€€I\r\0  (\0|"\x006ü \0A€€I\r\0 A@j!\fA\0! A\0A€ü\v\0  Av"\t6„ A\x006€  \tAl"6ü  \tAl6ø  \tAl6ô  \tAl6ð  \tAl6ì  \tAl6è  \tAl6ä  \tAl6à  \tAl6Ü  \tAl6Ø  \tAl6Ô  \tAl6Ð  \tAl6Ì  \tAl6È  \tAl6Ä  \tAt6À  \tAl6¼  \tAl6¸  \tA\rl6´  \tA\fl6°  \tA\vl6¬  \tA\nl6¨  \tA\tl6¤  \tAt6   \tAl6œ  \tAl6˜  \tAl6”  \tAt6  \tAl6Œ  \tAt6ˆ A€j! ¸Dš™™™™™É?¢!\' ¸!(@ A\fG@ \t@@   At"\0A\fr"j"(\0A\ftj A€j" j"(\0"AÿqAtj(\0!   \0A\br"j"(\0A\ftj  j"(\0"\bAÿqAtj(\0!   \0Ar"\rj"(\0A\ftj  \rj"(\0"\vAÿqAtj(\0!  \0 j"\n(\0A\ftj \0 j"(\0"AÿqAtj(\0! A€j" \0j"\0 \0(\0"\0Aj6\0 \0 j :\0\0 \n Aÿq6\0 \r j"\0 \0(\0"\0Aj6\0 \0 j :\0\0  Aÿq6\0  j"\0 \0(\0"\0Aj6\0 \0 j :\0\0  Aÿq6\0  j"\0 \0(\0"\0Aj6\0 \0 j :\0\0  Av A\nvl A\bvAÿqj"\x006\0  Av \vA\nvl A\bvAÿqj"6\0  Av \bA\nvl A\bvAÿqj"\v6\0  Aÿq6\0  Av A\nvl A\bvAÿqj"\n6\0@@ \' (d\r\0  \fO\r\0  -\0\0 \0Atr -\0A\btr \0 \0A€€I"\06\0  AA\0 \0j"-\0A\bt -\0\0 Atrr  A€€I"\06\0  AA\0 \0j"-\0A\bt -\0\0 \vAtrr \v \vA€€I"\06\0 AA\0 \0j"-\0A\bt -\0\0 \nAtrr \n \nA€€I"\0! AA\0 \0j\f\v@ \0AÿÿK\r\0 Aj O\r\0  -\0\0 \0Atr -\0A\btr6\0 Aj!\v@ AÿÿK\r\0 Aj O\r\0  -\0\0 Atr -\0A\btr6\0 Aj!\v@ \vAÿÿK\r\0 Aj O\r\0  -\0\0 \vAtr -\0A\btr6\0 Aj!\v \nAÿÿK\r Aj O\r -\0\0 \nAtr -\0A\btr! Aj\v!  6\0\v AI Aj!\r\0A\0! (€ \tH\r\0\v (ü!\v  M\r (ü!\0 (|!\f@   \fA\ftj \0AÿqAtj(\0"Aÿq"\f6|  j :\0\0  Av \0A\nvl A\bvAÿqj"\x006ü@ \0AÿÿK\r\0 Aj O\r\0  -\0\0 \0Atr -\0A\btr"\x006ü Aj!\v  Aj"6ü  G\r\0\v\f\v \t@A\0!\0@ A€j"  \0At"A\fr"j"(\0"Atj(\0 A€j" j"(\0"Aÿq"j-\0\0!!  A\br"j"(\0"At j(\0  j""(\0"\rAÿq"j-\0\0!#  Ar"j"(\0"At j(\0  j"$(\0"\bAÿq"j-\0\0!%  j"& &(\0"\nAÿq"   j"\v(\0"A\ntj  At j(\0j-\0\0"Atj"/k /\0 \nA\fvlj" 6\0 $   A\ntj %Atj"/k /\0 \bA\fvlj"\b6\0 "   A\ntj #Atj"/k /\0 \rA\fvlj"6\0  A\ntj !Atj"/!\n /\0! \v 6\0 A€j"\r j" (\0"Aj6\0   \nk  A\fvlj"6\0  j :\0\0  %6\0 \r j" (\0"Aj6\0  j %:\0\0  #6\0 \r j" (\0"Aj6\0  j #:\0\0  !6\0 \r j" (\0"Aj6\0  j !:\0\0@@ \' (d\r\0  \fO\r\0 & -\0\0 Atr -\0A\btr A€€I"6\0 $ AA\0 j"-\0A\bt -\0\0 \bAtrr \b \bA€€I"6\0 " AA\0 j"-\0A\bt -\0\0 Atrr  A€€I"6\0 AA\0 j"-\0A\bt -\0\0 Atrr  A€€I"! AA\0 j\f\v@ AÿÿK\r\0 Aj O\r\0 & -\0\0 Atr -\0A\btr6\0 Aj!\v@ \bAÿÿK\r\0 Aj O\r\0 $ -\0\0 \bAtr -\0A\btr6\0 Aj!\v@ AÿÿK\r\0 Aj O\r\0 " -\0\0 Atr -\0A\btr6\0 Aj!\v AÿÿK\r Aj O\r -\0\0 Atr -\0A\btr! Aj\v!  6\0\v \0AI \0Aj!\0\r\0A\0!\0 (€ \tH\r\0\v (ü!\v  M\r\0 (|!\v (ü!\0@  j \0Aÿq" A€j \v"Atj(\0j-\0\0"\v:\0\0   A\ntj \vAtj"/\0 \0A\fvl j /k"\x006ü@ \0AÿÿK\r\0 Aj O\r\0  -\0\0 \0Atr -\0A\btr"\x006ü Aj!\v  \v6|  Aj"6ü  G\r\0\v\v \t\f\v \t A\0!\v !\v Aj$\0 \vâ#\0AÀk"\b$\0@ A\tI\r\0 \0 j!\v@@ \0-\0\0"@ AI\r AG\r \0(\0 A\tkG\r \0(\0"AþÿÿÿK\rA€€à\0\v"E\r A\0A€€à\0ü\v\0 \bAÿA€ü\v\0 A€€@k"A\0A€ü\v\0@  A\vtj"B\x007€ð B\x007€à B\x007€Ð B\x007€À B\x007€° B\x007€  B\x007€ B\x007€€ B\x007€p B\x007€` B\x007€P B\x007€@ B\x007€0 B\x007€ B\x007€ B\x007\0 Aj"A€G\r\0\v \vAk! \0A\nj! \0-\0\t!\r@ \b \rAtj"\0/\0"AÿÿF@ \0 \n;\0 \n"Aj!\n\v Aj!\0  Á"A\ftj!  A\vtj! -\0\0!A\0!A\0!\t@ \b Atj"/\0AÿÿF@  \n;\0 \nAj!\n\v \0 K\r \0,\0\0"Aÿq! A\0N \0Aj \0-\0 A\btA€þqr! \0Aj\v!  Atj"\0 A€ "6\0 \0 "\x006 \0 j"A€ K\r @ \0 j  ü\v\0\v \tE@ Aj" -\0\0"G@A\0!\t Aj\f\v -\0!\t ! Aj\f\v AþJ\r Aj! \tAk!\t \v!\0 \r\0\v AÿI\r AÿF@  \rA\ftj"Aÿj Aþj-\0\0:\0\0\v \fE@ \rAj" \0-\0\0"\rG@A\0!\f \0Aj\f\v \0-\0!\f !\r \0Aj\f\v \rAþJ\r \rAj!\r \fAk!\f \0\v! \r\r\0\v@ \b Atj"\0 \0/\0"A\0 AÿÿG;\0 \0 \0/"A\0 AÿÿG; \0 \0/"A\0 AÿÿG; \0 \0/"\0A\0 \0AÿÿG; Aj"A€G\r\0\vA\0!  K\r (\0\0"\0A€€€I\r (\0"A€€€I\r (\0\b"\tA€€€I\r (\0\f"A€€€I\r \b"E\r Aj! Av"E@A\0!A\0!\f\v \vA\bk!  \b.\0A\ftj" \0Aÿqj!\f  Aÿqj!\n  \tAÿqj!  Aÿqj! At! Al!A\0! !\r@ -\0\0! -\0\0! \n-\0\0!\n  j \f-\0\0"\f:\0\0 \r j \n:\0\0  j :\0\0  j :\0\0 Aÿq  A\vtj Atj"(k (\0 A\fvlj! \tAÿq  A\vtj Atj"(k (\0 \tA\fvlj!\t Aÿq  A\vtj \nAtj"(k (\0 A\fvlj! \0Aÿq  A\vtj \fAtj"(k (\0 \0A\fvlj!\0@  I@  \0A€€€I"j! -\0\0 \0A\btr \0 "\0AÿÿÿK  -\0\0 \0A\btr!\0 Aj\v!  A€€€I"j! -\0\0 A\btr  "AÿÿÿK  -\0\0 A\btr! Aj\v!  \tA€€€I"j! -\0\0 \tA\btr \t "\tAÿÿÿK  -\0\0 \tA\btr!\t Aj\v!  A€€€I"j! -\0\0 A\btr  "AÿÿÿK@ !\f\v Aj! -\0\0 A\btr!\f\v@ \0AÿÿÿK@ !\f\v  \vO@ !\f\v Aj! -\0\0 \0A\btr! \0AÿÿK@ !\0\f\v  \vO@ !\0\f\v Aj! -\0 A\btr!\0\v@ AÿÿÿK@ !\f\v  \vO@ !\f\v Aj! -\0\0 A\btr! AÿÿK@ !\f\v  \vO@ !\f\v Aj! -\0 A\btr!\v@ \tAÿÿÿK@ !\f\v  \vO@ !\f\v Aj! -\0\0 \tA\btr! \tAÿÿK@ !\t\f\v  \vO@ !\t\f\v Aj! -\0 A\btr!\t\v AÿÿÿK@ !\f\v  \vO@ !\f\v Aj! -\0\0 A\btr! AÿÿK@ !\f\v  \vO@ !\f\v Aj! -\0 A\btr!\v  \b Atj.\0"A\ftj Aÿqj!  \b Atj.\0"A\ftj \tAÿqj!  \b \nAtj.\0"A\ftj Aÿqj!\n  \b \fAtj.\0"A\ftj \0Aÿqj!\f Aj! Aj! \rAj!\r  Aj"G\r\0\v\f\v AI\r \0(\0 A\tkG\r \0-\0" \0-\0A\bt \0-\0Atr \0-\0\bAtrr"AþÿÿÿK\r \b"\rE\r \vAk!\t \0A\nj! \0-\0\t!@@  \tK\r \n!\0 ,\0\0"Aÿq! A\0N Aj -\0 A\btA€þqr! Aj\v! \0 j"\nA€ K\r@ E\r\0A\0! AG@ Aq Aþ?q!@ \b \0 j"\fAtj 6\0 \fAt"\f \bA€Áj"j ;\0 \bAÀ€j \fj ;\0 \b Ar"\f \0j"Atj \f6\0  At"\fj ;\0 \bAÀ€j \fj ;\0 Aj" G\r\0\vE\r\v \0 j"\0At" \bA€Ájj ;\0 \bAÀ€j j ;\0 \b \0Atj 6\0\v E@ Aj"\0 -\0\0"G@A\0! Aj\f\v -\0! \0! Aj\f\v AþJ\r Aj! Ak! \v! \r\0\v \nAÿI\r\0 \nA€ G@ \b \b/¼À;¾À \b \b/ü€;þ€ \b \b(øAj6ü\v  \tK\r\0 (\0\0"A€€€I\r\0 (\0"A€€€I\r\0 (\0\b"A€€€I\r\0 (\0\f"\0A€€€I\r\0 Aüÿÿÿq"\n@ \vA\bk! Aj!A\0!\t@ \0Aÿq"At"\f \bA€Áj"j/\0 \0A\fvl \b Atj(\0j!\0  Aÿq"At"j/\0 A\fvl \b Atj(\0j!  Aÿq"At"j/\0 A\fvl \b Atj(\0j!  Aÿq"At"j/\0 A\fvl \b Atj(\0j!@  I@  A€€€I"j! -\0\0 A\btr  "AÿÿÿK  -\0\0 A\btr! Aj\v!  A€€€I"j! -\0\0 A\btr  "AÿÿÿK  -\0\0 A\btr! Aj\v!  A€€€I"j! -\0\0 A\btr  "AÿÿÿK  -\0\0 A\btr! Aj\v!  \0A€€€I"j! -\0\0 \0A\btr \0 "\0AÿÿÿK@ !\f\v Aj! -\0\0 \0A\btr!\0\f\v@ AÿÿÿK@ !\f\v  \vO@ !\f\v Aj! -\0\0 A\btr! AÿÿK@ !\f\v  \vO@ !\f\v Aj! -\0 A\btr!\v@ AÿÿÿK@ !\f\v  \vO@ !\f\v Aj! -\0\0 A\btr! AÿÿK@ !\f\v  \vO@ !\f\v Aj! -\0 A\btr!\v@ AÿÿÿK@ !\f\v  \vO@ !\f\v Aj! -\0\0 A\btr! AÿÿK@ !\f\v  \vO@ !\f\v Aj! -\0 A\btr!\v \0AÿÿÿK@ !\f\v  \vO@ !\f\v Aj! -\0\0 \0A\btr! \0AÿÿK@ !\0\f\v  \vO@ !\0\f\v Aj! -\0 A\btr!\0\v \t \rj" \bAÀ€j" j-\0\0:\0\0   j-\0\0:\0   j-\0\0:\0   \fj-\0\0:\0 \tAj"\t \nI\r\0\v\v@@@@ AqAk\0\v \n \rj \bAÀ€j AÿqAtj-\0\0:\0\v \n \rj \bAÀ€j AÿqAtj-\0\0:\0\v \n \rj \bAÀ€j AÿqAtj-\0\0:\0\0\v  6\0 \r!\f\v \rA\0!\f\v  I@@  j Aÿq"\0  A\ftjj-\0\0":\0\0@ \0  A\vtj Atj"\0(\0 A\fvlj \0(k"AÿÿÿK\r\0  \vO\r\0 Aj!\0 -\0\0 A\btr!@ AÿÿK\r\0 \0 \vO\r\0 -\0 A\btr! Aj!\f\v \0! !\v \b Atj.\0! Aj" G\r\0\v\v  6\0 !\v \t\v \bAÀj$\0 \vïG+#\0A 1k"\t$\0 \tA)jA\0A\bü\v\0 \0 j!&@@ \0A\0 AHE@ \0,\0\0"Aÿ\0q! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0-\0Aÿ\0q Atr! \0Aj!\f\v E@A\0\f\v \0,\0\0"A\0N\r \0!@ ,\0\0"Aÿ\0q Atr! Aj! A\0N\r  &I\r\0\v\v  \0k\f\v !A\v!  6\0@  k"A\nI@\f\v \t \0 j"\v-\0\0"6ˆ) AG@\f\v \t \v-\0"6Œ)A!@ AqE@ \tA6)A!\f\v \t \v-\0"6)A!@ \0\v !\v \t 6”)@@@@ AqE@@ E\r\0 Aq!\b \tA˜)j!A\0! A\bO@ Aøq!@  Atj 6\0  Ar"Atj 6\0  Ar"Atj 6\0  Ar"Atj 6\0  Ar"Atj 6\0  Ar"Atj 6\0  Ar"Atj 6\0  Ar"Atj 6\0 A\bj" G\r\0\v \bE\r\v@  Atj 6\0 Aj! \nAj"\n \bG\r\0\v\v Ak!\bA\0! \tA˜)j!A\0 "\nkAq"@@  \nAtj \b6\0 \nAj!\n Aj" G\r\0\v\v AÿsAI\rAø \nk"A\bqE@  \nAtj" \b6  \b6  \b6  \b6  \b6\f  \b6\b  \b6  \b6\0 A\bI\r \nA\bj!\n\v@  \nAtj" \b6<  \b68  \b64  \b60  \b6,  \b6(  \b6$  \b6  \b6  \b6  \b6  \b6  \b6\f  \b6\b  \b6  \b6\0 \nAj"\nA€G\r\0\v\f\v \t \v j-\0\x006”)A\0! \v Aj"j  k \tA˜)jA€"A\0H\r  j! \t()!\v \t Aä8l\b"6œ1 E@A\0!\f\vA\0! \tA\x006˜1 \t(”)! A\0L@\f\v@  k"AI\r  Aä8lj"\f \v j"/\0\0;\0 \f -\0"6 \f A q" :\0 \f AÀ\0q:\0 \f A€q":\0 \f Aq6 \f A\bq6\b \f Aq"6 \f Aq6\f \f -\0"\b6< \f -\0"Av"6 \f Aq6È8 \fA tAs6Ø8 \f -\0"Aq68 \f Av6 \f -\0"Aq60 \f Av6( \fAÈ\0j!A\0!@ @@  Atj"Bÿÿÿÿ÷ÿÿÿÿ\x0078 Bÿÿÿÿ÷ÿÿÿÿ\x0070 Bÿÿÿÿ÷ÿÿÿÿ\x007( Bÿÿÿÿ÷ÿÿÿÿ\x007 Bÿÿÿÿ÷ÿÿÿÿ\x007 Bÿÿÿÿ÷ÿÿÿÿ\x007 Bÿÿÿÿ÷ÿÿÿÿ\x007\b Bÿÿÿÿ÷ÿÿÿÿ\x007\0 Aj"A€G\r\0\v \bAj K\r \bE@A!\n\f\v \bAq!A\0!A!\nA\0! \bAO@@@ \bAk"\bAv"E@\f\v AjAþÿÿÿq!A\0!\'@  Atj" \n j""-\0\x006\0  "-\06  "-\06\b  "-\06\f  "-\06  "-\06  "-\06  "-\06 A\bj! \nA\bj!\n \'Aj"\' G\r\0\v \bAq\r\v  Atj"\b \n j"-\0\x006\0 \b -\06 \b -\06\b \b -\06\f Aj! \nAj!\n\v E\r\v@  Atj \n j-\0\x006\0 Aj! \nAj!\n Aj" G\r\0\v\f\v@  Atj 6\0  Ar"Atj 6\0  Ar"Atj 6\0  Ar"Atj 6\0  Ar"Atj 6\0  Ar"Atj 6\0  Ar"Atj 6\0A!\n  Ar"Atj 6\0 A\bj"A€G\r\0\v\v@ E\r\0 E@ \fAÈ\bj!A\0!@  Atj 6\0  Ar"Atj 6\0  Ar"Atj 6\0  Ar"Atj 6\0  Ar"Atj 6\0  Ar"Atj 6\0  Ar"Atj 6\0  Ar"Atj 6\0 A\bj"A€G\r\0\v\f\v \n j  \nk \fAÈ\bjA€"A\0H\r  \nj!\n \f-\0! \v@ E@ \fAÈjA\0A€ ü\v\0\f\v \n j  \nk \fAÈjA€\b"A\0H\r  \nj!\n\v@ \f-\0E@ \fAÈ0jA\0A€\bü\v\0\f\v \n j  \nk \fAÈ0jA€"A\0H\r  \nj!\n\v \nA\0H\rA\0 \f(\b \r  \f(<"  H! \n j! Aj" G\r\0\v \t 6˜1A\0!\f@  \fAä8lj"AÈj! ((!A\0!\n@  \nAtj"\b \b(\0 t6\0 \b \b( t6 \b \b(\b t6\b \b \b(\f t6\f \b \b( t6 \b \b( t6 \b \b( t6 \b \b( t6 \nA\bj"\nA€\bG\r\0\v AÈ0j! (0!A\0!\n@  \nAtj" (\0 t6\0  ( t6  (\b t6\b  (\f t6\f  ( t6  ( t6  ( t6  ( t6 \nA\bj"\nA€G\r\0\v  \fAj"\fG\r\0\v\f\v \t(œ1"E\r\v \f\v \tA€€À \v" 6 E\r\0 Aj"Aq!@ AÿO@ A|q!A\0!@ A\blj"A\bj!A\0!@  Atj"\bA;\0 \b ;  Ar"\nAtj"\bA;\0 \b \n;  Ar"\nAtj"\bA;\0 \b \n;  Ar"\nAtj"\bA;\0 \b \n; Aj" G\r\0\vA\0!\n @@  Atj"\bA;\0 \b ; Aj! \nAj"\n G\r\0\v\v  6\0 Aïÿ6 Aïÿ6Œ\b A\0;ˆ\b Aj"A€€G\r\0\v\f\v Aq! Aüq! AûK!A\0!@ A\blj"A\bj!A\0!A\0!\n@ AO@@  Atj"A;\0  ;  Ar"\bAtj"A;\0  \b;  Ar"\bAtj"A;\0  \b;  Ar"\bAtj"A;\0  \b; Aj" G\r\0\v !\n E\r\vA\0!@  \nAtj"A;\0  \n; \nAj!\n Aj" G\r\0\v\vA\0!\n ! AG@@  Atj"A\0;\0  ; Aj!  \nAj"\nsAG\r\0\v\v E@@  Atj"A\0;\0  ;  Aj"\bAtj"A\0;\0  \b;  Aj"\bAtj"A\0;\0  \b;  Aj"\bAtj"A\0;\0  \b; Aj"A€G\r\0\v\v  6\0 Aïÿ6 Aïÿ6Œ\b A\0;ˆ\b Aj"A€€G\r\0\v\v \tAj!A\0!@  Atj"A;\0  ;  Ar"Atj"A;\0  ;  Ar"Atj"A;\0  ;  Ar"Atj"A;\0  ; Aj"A€G\r\0\v \tB€‚€€ðý?7\b \tAïÿ6”\bA\0! \tA\0;\b \tA \bj!@  Atj"A;\0  ;  Ar"Atj"A;\0  ;  Ar"Atj"A;\0  ;  Ar"Atj"A;\0  ; Aj"A€G\r\0\v \tB€‚€€ðý?7˜\b \tAïÿ6¤A\0! \tA\0;  \tA°j!@  Atj"A;\0  ;  Ar"Atj"A;\0  ;  Ar"Atj"A;\0  ;  Ar"Atj"A;\0  ; Aj"A€G\r\0\v \tB€‚€€ðý?7¨ \tAïÿ6´A\0! \tA\0;° \tAÀj! @ Atj"A;\0  ; Ar"Atj"A;\0  ; Ar"Atj"A;\0  ; Ar"Atj"A;\0  ; Aj"A€G\r\0\v \tB€‚€€ðý?7¸ \tAïÿ6Ä \tA\0;À \tB€€€€À\x007Ð \tB‚€€€ðý?7È \tAïÿ6Ü \tA\0;Ø \tB€€€€À\x007ø( \tB‚€€€ðý?7ð( \tAïÿ6„) \tA\0;€) A\0J@ Aj"Aq! \tAè j!A\0!\nA\0!@ AO@ A|q!@  Atj"A;\0  ;  Ar"\bAtj"A;\0  \b;  Ar"\bAtj"A;\0  \b;  Ar"\bAtj"A;\0  \b; Aj" G\r\0\v E\r\v@  Atj"A;\0  ; Aj! \nAj"\n G\r\0\v\v@ AþK\r\0 ! Aq"\bAG@A\0!\n@  Atj"A\0;\0  ; Aj! \b \nAj"\nsAG\r\0\v\v AûK\r\0@  Atj"A\0;\0  ;  Aj"\bAtj"A\0;\0  \b;  Aj"\bAtj"A\0;\0  \b;  Aj"\bAtj"A\0;\0  \b; Aj"A€G\r\0\v\v \t 6à \tAïÿ6ä \tAïÿ6ì( \tA\0;è(\v \v j"Aj" &"M@ (\0" AxsA€þƒxqA\bv A\bxs! !\v@@ (\0\b"E\r\0Aè\b!#A \b!! #E\r\0 !E\r\0@ E@Aè!%A\0!\f\v \tAø(j! \tAÐ j! \0 j!\b AÈ\0j!+ AÈ0j!, AÈj!- AÈ\bj!. \tA˜)j!/ \tAè j!Aè!%A!\0A\0!\nA\0!A\0!\'A\0!A\0!"A!*A\0!A\0!@ $ %N@ %At! # %At"%!# ! !! #E\r !E\r\v@ E@ (\bA\0!@@ \0 \t(à "AkM@A\0!\r\f\v  \0 n"\0n"\rAïÿM\r\0\f\v !@ "\vAj! " \v/\0""j" \rM\r\0\v \v kA€\bJ@A\0!\f\v  \0 lk!@ \0 "l"\0AÿÿÿK\r\0  &O@A!\f\v@@ \0A\bt! Aj! -\0\0 A\btr! \0A€€O\r !\0 " \bG\r\0\vA! \b\f\v \v! !\0\v \v "Aj"\f;\0 \t Aj"6à @ AðÿI\r\0A\0!\r \tA\x006à ! \t/è "E\r\0@   AþÿqAvk";\0 \r Aÿÿqj!\r /! Aj! \r\0\v \t \r6à \v/\0!\f\v \v/! \vAk"/\0 \fAÿÿqO\r\0 \v (\x006\0  \f;\0 \vAk ;\0\v AÿÿqA\0\v""! \t(Œ)"Aq@ /Aÿ  AÿOAtj(\0!\v  \t()N\rA\0 \t(œ1 Aä8lj"( *E@A\0!@@ \0 \t(\b"AkM@A\0!\r\f\v  \0 n"\0n"\rAïÿM\r\0\f\v !@ "\vAj! " \v/\0"j" \rM\r\0\v \v kA€\bJ@A\0!\f\v  \0 lk!@ \0 l"\0AÿÿÿK\r\0  &O@A!\f\v@@ \0A\bt! Aj! -\0\0 A\btr! \0A€€O\r !\0 " \bG\r\0\vA! \b\f\v \v! !\0\v \v Aj"\f;\0 \t Aj"6\b@ AðÿI\r\0A\0!\r \tA\x006\b ! \t/"E\r\0@   AþÿqAvk";\0 \r Aÿÿqj!\r /! Aj! \r\0\v \t \r6\b \v/\0!\f\v \v/! \vAk"/\0 \fAÿÿqO\r\0 \v (\x006\0  \f;\0 \vAk ;\0\v Aÿÿq!A\0!@@ \0 \t(˜\b"AkM@A\0!\r\f\v  \0 n"\0n"\rAïÿM\r\0\f\v !@ "\vAj! " \v/\0"j" \rM\r\0\v \v kA€\bJ@A\0!\f\v  \0 lk!@ \0 l"\0AÿÿÿK\r\0  &O@A!\f\v@@ \0A\bt! Aj! -\0\0 A\btr! \0A€€O\r !\0 " \bG\r\0\vA! \b\f\v \v! !\0\v \v Aj"\f;\0 \t Aj"6˜\b@ AðÿI\r\0A\0!\r \tA\x006˜\b ! \t/ \b"E\r\0@   AþÿqAvk";\0 \r Aÿÿqj!\r /! Aj! \r\0\v \t \r6˜\b \v/\0!\f\v \v/! \vAk"/\0 \fAÿÿqO\r\0 \v (\x006\0  \f;\0 \vAk ;\0\v AÿÿqA\bt rA\0!@@ \0 \t(¨"AkM@A\0!\r\f\v  \0 n"\0n"\rAïÿM\r\0\f\v !@ "\vAj! " \v/\0"j" \rM\r\0\v \v kA€\bJ@A\0!\f\v  \0 lk!@ \0 l"\0AÿÿÿK\r\0  &O@A!\f\v@@ \0A\bt! Aj! -\0\0 A\btr! \0A€€O\r !\0 " \bG\r\0\vA! \b\f\v \v! !\0\v \v Aj"\f;\0 \t Aj"6¨@ AðÿI\r\0A\0!\r \tA\x006¨ ! \t/°"E\r\0@   AþÿqAvk";\0 \r Aÿÿqj!\r /! Aj! \r\0\v \t \r6¨ \v/\0!\f\v \v/! \vAk"/\0 \fAÿÿqO\r\0 \v (\x006\0  \f;\0 \vAk ;\0\v AtrA\0!@@ \0 \t(¸"AkM@A\0!\r\f\v  \0 n"\0n"\rAïÿM\r\0\f\v !@ "\vAj! " \v/\0"j" \rM\r\0\v \v kA€\bJ@A\0!\f\v  \0 lk!@ \0 l"\0AÿÿÿK\r\0  &O@A!\f\v@@ \0A\bt! Aj! -\0\0 A\btr! \0A€€O\r !\0 " \bG\r\0\vA! \b\f\v \v! !\0\v \v Aj"\f;\0 \t Aj"6¸@ AðÿI\r\0A\0!\r \tA\x006¸ ! \t/À"E\r\0@   AþÿqAvk";\0 \r Aÿÿqj!\r /! Aj! \r\0\v \t \r6¸ \v/\0!\f\v \v/! \vAk"/\0 \fAÿÿqO\r\0 \v (\x006\0  \f;\0 \vAk ;\0\v Atr!\v Ak (\0 kO\r@ E\r\0  $L\r\0  $Atj 6\0\v Aq@A\0!@@ \0 \t(È "AkM@A\0!\r\f\v  \0 n"\0n"\rAïÿM\r\0\f\v !@ "\vAj! " \v/\0"j" \rM\r\0\v \v kA\bJ@A\0!\f\v  \0 lk!@ \0 l"\0AÿÿÿK\r\0  &O@A!\f\v@@ \0A\bt! Aj! -\0\0 A\btr! \0A€€O\r !\0 " \bG\r\0\vA! \b\f\v \v! !\0\v \v Aj"\f;\0 \t Aj"6È @ AðÿI\r\0A\0!\r \tA\x006È ! \t/Ð "E\r\0@   AþÿqAvk";\0 \r Aÿÿqj!\r /! Aj! \r\0\v \t \r6È \v/\0!\f\v \v/! \vAk"/\0 \fAÿÿqO\r\0 \v (\x006\0  \f;\0 \vAk ;\0\v # $j :\0\0 ! $Atj 6\0 Aÿÿq!(\v@ (\fE\r\0A\0!@ \0 \t(ð("AkM@A\0!\r\f\v  \0 n"\0n"\rAïÿK\r\v !@ "\vAj! " \v/\0"j" \rM\r\0\v \v kA\bJ\r\0  \0 lk!@ \0 l"\0AÿÿÿK\r\0  &O@A!\f\v@@ \0A\bt! Aj! -\0\0 A\btr! \0A€€O\r !\0 " \bG\r\0\vA! \b\f\v \v! !\0\v \v Aj"\f;\0 \t Aj"6ð(@ AðÿI\r\0A\0!\r \tA\x006ð( ! \t/ø("E\r\0@   AþÿqAvk";\0 \r Aÿÿqj!\r /! Aj! \r\0\v \t \r6ð( \v/\0!\f\v \v/! \vAk"/\0 \fAÿÿqI@ \v (\x006\0  \f;\0 \vAk ;\0\v E\r\0  I\r @  j"  k ü\n\0\0\v $Aj!$  j!A\0!*A\0!\f\v $Aj!$ /\0!\nA\0!*A\0!A\0!\'A\0!) !\v@A\0!@@ \0 \t( \nA\blj"(\0"AkM@A\0!\f\v  \0 n"\0n"AïÿM\r\0\f\v A\bj"\f!\n@ \n"Aj!\n "\v /\0"j" M\r\0\v  \fkA€\bJ@A\0!\f\v  \0 \vlk!@ \0 l"\0AÿÿÿK\r\0  &O@A!\f\v@@ \0A\bt! Aj! -\0\0 A\btr! \0A€€O\r !\0 " \bG\r\0\vA! \b\f\v \v! !\0\v  Aj";\0  Aj"6\0@ AðÿI\r\0A\0!\n A\x006\0 /\b"E\r\0@ \f  AþÿqAvk";\0 \n Aÿÿqj!\n \f/! \fAj!\f \r\0\v  \n6\0 /\0!\v /! Ak"\n/\0 AÿÿqO\r\0  \n(\x006\0 \n ;\0 Ak ;\0\v ,Aÿ \' \'AÿOAtj(\0 -Aÿ  AÿOAtj(\0 . Aÿq"At"j(\0! (8! ( !\v (Ø8 (È8!  j  +j(\0:\0\0  ) tj")q \vtjj " tjAÿÿq!\n Aj! \'  Gj!\' Ak"@ !  I\r\v\v !\v  I\r\0\v Av! $ %H\r\0 %At!\0 # %At"%!# ! \0!! #E\r !E\r\v # $j (:\0\0 ! $Atj 6\0@ \t-\0Œ)AqE\r\0 E\r\0 %A\0L\r\0A\0!\fA\0!\0@@ \f #j-\0\0E\r\0 ! \fAtj(\0"AH\r\0 \0 j! Ak!A\0!@  j"-\0\0!   j"-\0\0:\0\0  :\0\0 Aj" Ak"H\r\0\v\v ! \fAtj(\0 \0j"\0 O\r \fAj"\f %H\r\0\v\v \r\0 \t(\t # ! \t(œ1"\r\f\v \t(\t # ! \t(œ1"\0@ \0\v !A\0!\v \v \tA 1j$\0 \v\f\0 \0 A\0 \v,\0Aè‡A€À\x006\0Aà‡A€‰6\0AȇA*6\0Aä‡A€€6\0\v\vÆr\0A‚\b\v– N\0ë§~ u†ú\0¹,ý·Šz¼\0ú¢\0=I×\0\b\0“\b*_·úXÙ+ʽáÍÜ@x\0}gaì\0å\nÔ\0Ì>Ov˜¯\0\0D\0®\0®`\0úw!ë+\0`A’\0©£nN\0AÈ\t\v\f\0\0\0\0\0\0\0\0*\0Aè\t\v\'9H\0Aþ\t\v’\0A’\n\vƒ28R`S\0\0Ê»\0\0Ò\0\0é\t>Yi~ {0x%08x, 0x%08x}\0\n combined CRCs: stored = 0x%08x, computed = 0x%08x\0-+ 0X0x\0invalid literal/lengths set\0invalid code lengths set\0unknown header flags set\0invalid distances set\0invalid bit length repeat\0too many length or distance symbols\0invalid stored block lengths\0Unknown error\0invalid code -- missing end-of-block\0incorrect header check\0incorrect length check\0incorrect data check\0invalid distance too far back\0header crc mismatch\0invalid window size\0invalid block type\0invalid literal/length code\0invalid distance code\0unknown compression method\0rt+rld\x001.0.6, 6-Sept-2010\0(null)\0\n [%d: huff+mtf \0Error: out of rans_tls_alloc slots\n\0Initialising TLS data failed: pthread_once: %s\n\0Attempt to htscodecs_tls_free a buffer twice\n\0Attempt to htscodecs_tls_free a buffer not allocated with htscodecs_tls_alloc\n\0Name codec currently has a max of 10 million rec.\n\0\n\nbzip2/libbzip2: internal error number %d.\nThis is a bug in bzip2/libbzip2, %s.\nPlease report it to me at: jseward@bzip.org. If this happened\nwhen you were using some program which uses libbzip2 as a\ncomponent, you should also report this bug to the author(s)\nof that program. Please make an effort to report this bug;\ntimely and accurate bug reports eventually lead to higher\nquality software. Thanks. Julian Seward, 10 December 2007.\n\n\0Success\0Illegal byte sequence\0Domain error\0Result not representable\0Not a tty\0Permission denied\0Operation not permitted\0No such file or directory\0No such process\0File exists\0Value too large for defined data type\0No space left on device\0Out of memory\0Resource busy\0Interrupted system call\0Resource temporarily unavailable\0Invalid seek\0Cross-device link\0Read-only file system\0Directory not empty\0Connection reset by peer\0Operation timed out\0Connection refused\0Host is down\0Host is unreachable\0Address in use\0Broken pipe\0I/O error\0No such device or address\0Block device required\0No such device\0Not a directory\0Is a directory\0Text file busy\0Exec format error\0Invalid argument\0Argument list too long\0Symbolic link loop\0Filename too long\0Too many open files in system\0No file descriptors available\0Bad file descriptor\0No child process\0Bad address\0File too large\0Too many links\0No locks available\0Resource deadlock would occur\0State not recoverable\0Owner died\0Operation canceled\0Function not implemented\0No message of desired type\0Identifier removed\0Device not a stream\0No data available\0Device timeout\0Out of streams resources\0Link has been severed\0Protocol error\0Bad message\0File descriptor in bad state\0Not a socket\0Destination address required\0Message too large\0Protocol wrong type for socket\0Protocol not available\0Protocol not supported\0Socket type not supported\0Not supported\0Protocol family not supported\0Address family not supported by protocol\0Address not available\0Network is down\0Network unreachable\0Connection reset by network\0Connection aborted\0No buffer space available\0Socket is connected\0Socket not connected\0Cannot send after socket shutdown\0Operation already in progress\0Operation in progress\0Stale file handle\0Data consistency error\0Resource not available\0Remote I/O error\0Quota exceeded\0No medium found\0Wrong medium type\0Multihop attempted\0Required key not available\0Key has expired\0Key has been revoked\0Key was rejected by service\0\0\0\0\0·Án;‚\tÙ&C\rÜvkkŲM†PG¸í\b&ðÉ"Ö֊/aËK+d›\f5ӆÍ1\n Ž<½½O8pÛLÇÆÐHà“E©ýRA¬­_°Ô[–—Vu‹VRÈ6j+Øn¦\r›cZg@y£]Ü}z{ŸpÍf^tà¶#˜W«âœŽ¡‘9`•<À\'‹‹ÝæRû¥‚åæd†X[+¾ïFêº6`©·}h³„-/­30î©ê­¤]\vl m2Ô\'póÐþV°ÝIKqÙL6Çû÷Ã" ´Î•=uÊ(€:òŸûöF»¸ûñ¦yÿôö>áCëÿåšÍ¼è-Ð}ìwp†4ÀmG0K=®VÅ9«‚\'C#Å=\0.r Á*ϝŽx€O¡¦\f»Í늤öK}Ð\b\bÊÍÉ\f«—x°¶V|iqލÔuÛݓklÀRoµæbûÐf¿FŸ^\b[^ZÑ}Wf`ÜSc0›MÔ-ZI\r\vDºØ@—Æ¥¬ Ûd¨ùý\'¥Nàæ¡K°¡¿ü­`»%‹#¶’–â²/+­Š˜6lŽA/ƒö\rî‡ó]©™D@hf+*{ê”ç´àP\0uä‰&6é>;÷í;k°óŒvq÷UP2úâMóþ_ð¼Æèí}Â1Ë>φÖÿ˃†¸Õ4›yÑí½:ÜZ ûØîà\fiYýÍm€ÛŽ`7ÆOd2–\bz…‹É~\\­Šsë°KwV\rOáÅK86†F+GBŠ{\0\\=fÁXä@‚US]CQž;%)&Ü!ð\0Ÿ,G^(BM6õPØ2,v›?›kZ;&Ö‘ËÔHí—\nÿðVú M½Ð”›“#†RV/ñ¹Kîõ`m­ø×plüÒ +âe=êæ¼©ë\vhï¶»\'צæÓ؀¥ÞodÚjÍ#ÄÝÐâÀö¡Í³ë`É~>½Éÿ¹¶¼´§«}°¢û:®æûªÌÀ¸§{Ýy£Æ`6›q}÷Ÿ¨[´’Fu–2ˆ­\vóŒt-°Ã0q…™Š].KY÷«\bT@¶ÉPEæŽNòûOJ+Ý\fGœÀÍC!}‚{–`COF\0rø[Ávý\v†hJGl“0a$-ÅeéK›^VZ‡p0mØ5=Ÿ‚ ^[\vìÜQ¦“7æ»R3?>ˆ€Ð:Ð—$:ÍV ãë-TöÔ)y&©ÅÎ;hÁ+Ì \0êÈ¥P­ÖMlÒËk/ß|vîÛÁË¡ãvÖ`ç¯ð#êíâî½¥ðª dôs†\'ùěæý\tý¸‰¾àygÆ:€ÐÛû„Õ‹¼šb–}ž»°>“\f­ÿ—±°¯\rq«ß+2¦h6ó¢mf´¼Ú{u¸]6µ´@÷±k\0\0Ð\0\0\0\0\0á\0\0£\0\x000\0\0-\0\0é\0\0\x006\0\0÷\0\0\0Ù\0\0Ô\0\0Í\0\0\0Æ\0\0_\0\0ë\0\0å\0\0ò\0\0\0µ\0\0Ö\0\0\0Ý\0\0[\0\0O\0\0Ä\0\0m\0\0>\0\0I\0\0\0Ž\0\0Ú\0\0Ø\0\0£\0\0´\0\0\0\0ð\0\0c\0\0Ò\0\0\0\0\0¨\0\0à\0\x003\0\0\0n\0\0Ñ\0\0+\0\0©\0\0\0e\0\0£\0\0c\0\0¹\0\0c\0\x001\0\0^\0\0¯\0\0û\0\0\0\0â\0\0\0\0\0\'\0\0O\0\0Ý\0\0o\0\0–\0\0\0î\0\0\0;\0\0\0{\0\0¬\0\0m\0\0q\0\0©\0\0\0ƒ\0\0i\0\0\0ª\0\0\0_\0\0\b\0\0¤\0\0×\0\0Ü\0\0µ\0\0©\0\0®\0\0\0‡\0\0I\0\0\0z\0\0\0O\0\0\0\0º\0\0U\0\0·\0\0ù\0\0\0½\0\0\0\0\0\0!\0\0¿\0\0—\0\0j\0\0Ú\0\0r\0\0ô\0\0R\0\0d\0\0\0\0!\0\0Ü\0\0\0¢\0\0\x003\0\0Ø\0\0M\0\0\0\0ï\0\0\0\0¡\0\0\0\\\0\0¾\0\0\0\0Ý\0\0\0\0\0‚\0\0c\0\0X\0\0\0\0~\0\0T\0\0ž\0\0«\0\0\0\0\0w\0\0ª\0\0å\0\0\0\0\0\0b\0\0\0)\0\0£\0\0\0b\0\0š\0\0¥\0\0¨\0\0U\0\0\0\0f\0\0ã\0\0\0Ú\0\0Û\0\0º\0\0\0\0\0‡\0\0\0\0®\0\0X\0\0à\0\0\0Õ\0\0D\0\0\0\0\0—\0\0¾\0\0\0u\0\0&\0\x006\0\0(\0\0Î\0\0\0¸\0\0\0¯\0\0\0\0€\0\0\0\0Í\0\0”\0\0ö\0\0G\0\0w\0\0Ë\0\0C\0\0\0j\0\0\0\0Ì\0\0\0–\0\0i\0\0\t\0\0\\\0\x000\0\0·\0\0 \0\0\0B\0\0Ò\0\0O\0\0\0$\0\0`\0\0\0™\0\0É\0\0¬\0\0Œ\0\0¦\0\0Ê\0\0¿\0\0>\0\0a\0\0[\0\0 \0\0p\0\0\0\0\0…\0\0_\0\0#\0\0^\0\0‹\0\0\0]\0\0\0b\0\0c\0\0\x004\0\0Œ\0\0a\0\0\0\0š\0\0\0\0\0D\0\0¸\0\0\0O\0\0\0r\0\0v\0\0æ\0\0\0\0\0\0ú\0\0o\0\0¨\0\0Q\0\0\0Ÿ\0\0r\0\0\0\0}\0\0\0›\0\0\t\0\0ª\0\0,\0\x005\0\0N\0\0\0W\0\0¯\0\0\0€\0\0\0ú\0\0\0ª\0\0\0\0\0Ì\0\0\0\0ç\0\0\0\0ï\0\0N\0\0\0`\0\0~\0\0\0Y\0\0¼\0\0f\0\0k\0\0D\0\0|\0\0\0á\0\0R\0\0½\0\0d\0\0\0\0p\0\0\0†\0\0\0¶\0\0k\0\0à\0\0)\0\0ç\0\0¨\0\0\0Î\0\0°\0\0w\0\0ì\0\x004\0\0\0X\0\0ë\0\0‚\0\0¶\0\0\0^\0\0Q\0\0\0X\0\0%\0\0Ü\0\0ã\0\0ÿ\0\0\0\0.\0\0N\0\0ù\0\0\0\0\0\0\0»\0\0˜\0\0Õ\0\0‰\0\0q\0\0\0Î\0\0Ë\0\0}\0\0ä\0\0\0±\0\0E\0\0)\0\0\f\0\0ž\0\0ð\0\0\0f\0\0\0Ž\0\0Ë\0\x003\0\0\0®\0\0ò\0\0&\0\0ø\0\0í\0\0“\0\0Ÿ\0\0Š\0\0¯\0\0¼\0\0²\0\0ž\0\0\0\0b\0\0â\0\0ˆ\0\0ø\0\0\0\0w\0\0\0\0Ò\0\0A\0\0@\0\0i\0\0r\0\0ö\0\0~\0\0§\0\0ó\0\0\0¸\0\0¨\0\0o\0\0Â\0\0\0<\0\0€\0\0Ô\0\0ž\0\x008\0\0\0Ì\0\0\0¼\0\0Ã\0\0—\0\0\0É\0\0Á\0\0\0\0Ã\0\0\0\0\0.\0\0±\0\0§\0\0)\0\0;\0\0\0W\0\0\x008\0\0É\0\0—\0\0œ\0\0µ\0\0V\0\0^\0\0†\0\0\0l\0\0\0;\0\0l\0\0w\0\0Ô\0\0\0®\0\0\0ƒ\0\x000\0\0I\0\0W\0\0a\0\0\0®\0\0ï\0\0ñ\0\0:\0\0×\0\0v\0\x006\0\0 \0\0Œ\0\0\0Î\0\0\0I\0\0\0\0\0Ô\0\0à\0\0l\0\0Þ\0\0®\0\x001\0\0ª\0\0\0\0\0l\0\0´\0\0=\0\0R\0\0\0W\0\0¹\0\0¤\0\0ö\0\0\0q\0\0Ê\0\0&\0\0î\0\0\'\0\0;\0\0–\0\0\0\0\0 \0\0›\0\0$\0\0z\0\0×\0\0\0<\0\0P\0\0\0\x005\0\0+\0\0Æ\0\0R\0\0\0€\0\0?\0\0#\0\0\0\0\f\0\0Î\0\0%\0\0Ñ\0\0ö\0\x008\0\0\0•\0\x005\0\0Ð\0\0ß\0\0’\0\0e\0\0‰\0\0ö\0\0é\0\0Á\0\0\0\0\0\0&\0\0`\0\0¥\0\0z\0\0\0\0×\0\0\0Ó\0\0\0\0Á\0\0=\0\0\0°\0\0\0\0„\0\0Ú\0\0“\0\0j\0\0\0n\0\0‰\0\0„\0\0t\0\x007\0\0Ò\0\0²\0\0…\0\0Ò\0\0\0…\0\0&\0\0—\0\0‡\0\0\0\f\0\0\0\0{\0\0…\0\0Ã\0\0d\0\0\0r\0\0¾\0\0¥\0\0\0ø\0\0˜\0\0°\0\0\0Á\0\0\0É\0\0Y\0\0\t\0\0Ë\0\0\x002\0\0\0œ\0\0l\0\0\0…\0\0Þ\0\0r\0\0Å\0\0\0þ\0\0e\0\0f\0\0R\0\0Z\0\0l\0\0¨\0\0~\0\0\0\0\0\0\0\b\0\0\t\0\0\n\0\0\v\0\0\f\0\0\r\0\0\0\0\0A¤<\v¹;–0w,aîºQ\t™Ämôjp5¥c飕dž2ˆÛ¤¸ÜyéÕàˆÙҗ+L¶\t½|±~-¸ç‘¿d·ò °jHq¹óÞA¾„}ÔÚëäÝmQµÔôDžӃV˜lÀ¨kdzùbýìÉeŠO\\Ùlcc=úõ\r\bÈ n;^iLäA`Õrqg¢Ñä<GÔKý…\rÒkµ\n¥ú¨µ5l˜²BÖÉ»Û@ù¼¬ãlØ2u\\ßEÏ\rÖÜY=Ñ«¬0Ù&:\0ÞQ€Q×Èaпµô´!#ijV™•ºÏ¥½¸ž¸(\bˆ_²Ù\fÆ$é\v±‡|o/LhX«aÁ=-f¶AÜvqÛ¼ Ҙ*Õ±qµ¶¥ä¿Ÿ3Ô¸è¢Éx4ù\0ލ\t–˜á»\rj-=m\b—ld‘\\cæôQkkbalØ0e…N\0bòí•l{¥Áô\b‚WÄõÆÙ°ePé·긾‹|ˆ¹üßÝbI-Úó|ӌeLÔûXa²MÎQµ:t\0¼£â0»ÔA¥ßJוØ=mÄѤûôÖÓjéiCüÙn4Fˆg­Ð¸`Ús-Då3_L\nªÉ|\rÝ<qPªA\'\v¾† \fÉ%µhW³…o \tÔf¹ŸäaÎùÞ^˜ÉÙ)"˜Ð°´¨×Ç=³Y\r´.;\\½·­lºÀ ƒ¸í¶³¿š\fâ¶šÒ±t9GÕê¯wҝ&ÛƒÜs\vcã„;d”>jm\r¨Zjz\vÏäÿ\t“\'®\0\n±ž}D“ðÒ£\b‡hòþÂi]Wb÷Ëge€q6lçknvÔþà+ӉZzÚÌJÝgoß¹ùùホC¾·Վ°`è£ÖÖ~“Ñ¡ÄÂØ8RòßOñg»ÑgW¼¦Ýµ?K6²HÚ+\rØL\n¯öJ6`zAÃï`ßUßg¨ïŽn1y¾iFŒ³a˃f¼ Òo%6âhR•w\fÌG\v»¹"/&U¾;ºÅ(\v½²’Z´+j³\\§ÿ×Â1Ïе‹žÙ,®Þ[°Âd›&òc윣ju\n“m©\tœ?6ë…grW\0‚J¿•z¸â®+±{8¶\f›ŽÒ’\r¾Õå·ïÜ|!ßÛ\vÔÒӆBâÔñø³ÝhnƒÚ;[&¹öáw°owG·æZ\bˆpjÿÊ;f\\\vÿžei®bøÓÿkaEÏlxâ\n îÒ\r×TƒN³9a&g§÷`ÐMGiIÛwn>JjÑ®ÜZÖÙf\vß@ð;Ø7S®¼©Åž»ÞϲGéÿµ0ò½½ŠÂºÊ0“³S¦£´$6к“×Í)WÞT¿gÙ#.zf³¸JaÄh]”+o*7¾\v´¡Ž\fÃßZï-\0\0\0\0F;geŒvÎÊÊM©¯YëíNЊ+՝#„“¦Dá²Ö۝ôí¼ø> Wx›r2ë=6Ó­Q¶gKø!pŸ|%«Æàc¡…©Ý\b*ïæoO|@+®:{LËð6åd¶\r‚—}}ÑFz\vÓ·]0´ÒΖð3ˆ­—VBà>ùÛYœ\vPüMk›‡&2ÐÁUµR»T€v1ÞÍߞ˜ö¸û¹†\'‡ÿ½@â5ðéMsˎ(àmÊɦV­¬l* cf.û:úhÀ]Ÿ¢ô0䶓Uw×´1+°Ñûf~½]~œ-ágÚ†[/­V`HÈÅÆ\f)ƒýkLI°Âã‹¥† ø5P›ŸPšÖ6ÿÜíQšOK{\tprÃ=Û±…¼Ô¤v#¨âMDÍ(\0íbn;ŠýÎ滦©ƒqë\0,7ÐgI3\v>Õu0Y°¿}ðùF—zjàӛ,Û´þæ–Q ­z4ÝåHÇæ‚-\r«+‚KLçØ6\bž\rocT@ÆÌ{¡©ð/[ËcJ‘†Êå×½­€Déa ŽÈm\'«ŽV@ί&ß²é¸×#PxekvöÍ2ü°öU™z»ü6<€›S8[ÂÏ~`¥ª´-\fòk`a°/\'‹HäíÆáK«ý†.ŠR̶~7ûט@À°ýÓfô•]“y_:Ö+]³,@ñkj{– 6?¡æ\rXÄu«%3{@ùÝÒï¿æµŠž–*öØ­M“àä<TۃYÇ}ǸF ÝK\v\tr\r0n\të7‹OÐPùAæž$P\0ÚÅ;½ ÜvšMsj»=ìý‹s7K"ÜqpE¹âÖX¤íf=n Ï’(›¨÷\'\rqa+j«fûí]¤Þ~ûà?8À‡Zò.õ´¶I•ÆÖìÓý±‰°&_‹CÌ-;¢Š\\Ç@[õh`’\r»Ë‘D€¬ôŽÍ[Èöb>[P&ßkAº×&葏p°m\föVwi<ÞÆz ¹£é†ýB¯½š\'eð3ˆ#ËTí:à\t^|Ûn;¶–Ç”ð­ ñc\vä%0ƒuï}*Ú©FM¿ˆ6ÒÃÎ\rµ¦@\tB{{lÑÝ?—æXè]«ñG–"KϾYp¨Û“=tÕfF "ð\0›E•ÊÖì:Œí‹_­#ë¦sF!ëÚégнŒôvùm²Mž\bx\x007§>;PÂ1°õDw‹’!½Æ;Žûý\\ëh[\n.`oä-ÖÀ¢±¥ƒf.ÙÅ]I¼àI+‡vڍל¶¤òVû\r]Àj83¤R TÁ˜mýnÞVš\vMðÞê\v˹Á† ‡½wE¦Íè9àö\\*»&ól€A–ÿ&w¹bsP˽5k¬Ø\0\0\0\0X€â×ñ´t©†V£â\rh麍Š>\vܝK‹>J…¡\tݝCÞt},›÷ªgÉà?+7–}”ΖŸC\n;BR» Äû=ög£½°è6*ú°¶È-0žŽA°|Y&ãצÍ~ Wn& µ¹m+‹ó5«i$œ-?‡Ä­ÝPv„&Löfñåp0R½ð҅ö{ìÏ®û}X»_ýºl‘k%/ÉëÇø`m‘[8ísŒsfMÆ+毂`ù²ÚàeMÆ5FÍ$âïKrA·Ë–ü@®Ü¤ÀL\v\rF¨UÆø›Pg<ÃЅëjVÓH2Ö1Ÿy]Õ!Ýíˆ[»¡ÐÛYv(ì\bMplêšÙê¼9j^îÊá`¤’a‚s;çÔÐcg6­ñ©DõqK“\\÷0wÿçOüÁ­|#z¾úuÙæz—"×J^zW¨‰ÓÑþ*‹QýÀÚ"·˜ZÀ`1ܖÃi\\t§ÊëWÿJ\t€VÌ_#L½ôEǃ¾Gai´Á7ÊìAÕ<šŒkdn¼Íœ8•ÚÈޗ䂆U/‘Pöw²!¹‡-báϵH™{Á[ŠE‹\n§\\ªŒñÿò\f(6¡Îxn!,¯Ç§z\fŸ\'˜ÛÔ¬¦‘Œ,DF%ªå}*ð2³¼oqë<¦BºÛ:9ÒQ±˜\t1åO ·³ìø7Q;PØš\bXóM¡Þ¥îù^G9²ÕysêU›¤CÓÍS/ÐÕۓERD$Ãç|Cæ07ÈØzoH:­ÆÎlžNŽÙZãS‰c±^«åçýóe*¸î;`ànÙ·IèhmÃßþò€‡~W.øFôvx¤#=óšiesx¾Ìõ.”uÌÊD®•¼.wkµ¨!Èí(æ£ýUþ#‚W¥I!%«öÁ³4µ™3Öb0µ€Áh5b#¾\\\\{>¾‹Ò¸è(Š8\nÿN•ׯ5x¿“cÛç\f¬˜¿Fô]‘]ž\v2éåˈv¦“\b”q:ŽÂÒb )…Oqü˜Øƒª;€Hìx4× ´û\0‰2­£Ñ²Otš9q>¹“ék?ÅJ3¿\'ý)¸Þ¥©Z\t\f/\fªT¯î}$Ð7G¤2àî"dC¶¢†”r[Ä*¹ƒ\tï°Û‰\rg3-ȂÑúa‡Y9„eŽ÷úͯ’N¹^”¬n’$MŸpóä&P¼™Ä‡lBñ4Â&D)…ÅÄËRŽOõÖÏÏIAl\'É£»é_<ø±ßÞ/YˆŒ@Ùj[\vRTSÒ¶ÆúTàe¢Ô²fyßâ>ù=5—k–Ïÿ‰A„t·\vÜôUÜur-òá¨ãd~ë»äœ<bʟJâ(HiYéôÕðo¢v¨ï@¡\0\0\0\0á¶RïƒkÔb݆êר\vçaú䅼|d\n.á\f®QíøÅ…ns×ý\nyùëÏ«ó‰-h¤ö\\£.ùêñÁ›7w+z%Ä‹\v%ÿ=Yʝàß |VÏòò9õD Ö—™&<v/tÓ%Z2ó“\bݑNŽ7pøÜØ0¸F]Ѳ³Ó’XReÀ·6oîV×Ù¼¹µ:ST²h¼<JÝ E¥¿}ÃO^ˑ :Á¿AÛwí®¹ªkDX9«(äåsÉR·œ«1vJ9c™.3Mxυ—­X™}Lî˒$J´dÅü拧!`aF—2Ž"oÃ+N€¡öÈj@@š…`pºÆßUãY¿­\vPf§%±‡w^åÌñ´z£[lÞÜ­hŽBïµ\b¨ZGj\tt¦‹¿&Iéb £\bÔòLx,.”™š|{ûGú‘ñ¨~~û†ŸŸMÔpýRš&\0ut‚ƒ•4-l÷髆_ùirU׈“ã…gñ>ˆQbPÈËç±~™\bÓ£â2M\rVcì·©1Õt·é4Âå\\fšð½ÐÈß\rNõ>»Z±2û»`ÙÚæþ8l´H”hÉ©":&Ëÿ¼Ì*Iî#NCÀ¯õ’-Í(Ç,žF(D:9Þ¥Œk1ÇQíÛ&ç¿4Bí‘Õ£[Ã:Á†EÐ 0?æk®`P9A¿«ã;íD‡1Ã¥f‡‘JZ åìEOH:¹lþhV#î¼ï•¼S‹Ÿ’²j)À]\bôF·éBX™ºÈ€x\fšoÑ…ûgNjŸm`‹~Û2d´Žý°æa•™—t¢ËxM’÷É}“Ã1œrucs¨å™ñ·v±^-óPè25ùöӃ«·‰…øV?×4âQýÕT½ð|ä\\F.\v>›¨áß-ú»\'ÔïZ‘†\x008L\0êÙúR©ŽÝH´Ü2*iZØËß\b7¯Õ&ÖNct9,¾òÓÍ\b <¥¬ßÊD%&Ç\vÏÇqY £{wÁBÍ%. £ÄÁ¦ñ+á–æ\0 ´ûbý2ƒK`þçAN÷ðd*š…œÈõí8·\fŽåìnScå1éëï\b\nYMçh„Ë\r‰2™âùÊE:|Õz¡‘?›ÃÐÿí1«¿Þ|v94ÀkÛõd-ÒFÂvÀ(—¹’Çó³¼&îÉpØh#‘n:ÌÑ. I0˜ò¦REtL³ó&£×ù\bB6OZ­T’ÜGµ$Ž¨Ý€ñ^<6£±^ë%[¿]w´ÛWYU:á\vºX<P¹Šß¿Érg(ÄQˆJ×b«¯…Ï¥«l.ùƒLÎi­x-†ÅÜRp$j\0ŸF·†u§ԚÃ\vú{"½¨”@`.~¡Ö|‘\0\0\0\0C˦‡Ç<Ԅ[šSÏ\'\bsŒì®ô\b·4§K|’ žOæÝ„¶aYß,2еQh•£¾–ø$AÕ3‚Æ}™Q>R÷º\tmÃùÂËD²¾Ydñuÿãu.e°6åÃ7ãÖAñ çv$F}%gÛ¢,ñI‚o:ïëauV¨ªÓÑú2£.¹ù©=¢Ÿú~i9}5«]vÞ\rÚò…—‰±N1d}³È\'¶O£íà&)›«Z»»è‘<lʇo/!臫ò9Ä`T¾@;ÎíðhjHŒúJ\vG\\͏ƞÌ×`äâßZ/DXÞtÞ\v¿xŒÖÃꬕ\bL+SÖxR˜pÿôeF]·®àÚ3õz‰p>Ü;BN.x‰è©üÒrú¿Ô}j*V»)áð<­ºjoîqÌè¥\r^ÈæÆøObb!Vě‰üJÊ7±ÍNl+ž\r§FÛ9¹¾K#퀅j³¬Tx¡+Ð#;x“èÿؔߛ_©X3\v\\ϕŒWåsMœCôÉÇÙ§Š\f Ápí\0‚»K‡àÑÔE+wSõ•ÓÓSWˆÉACoÆ_?ýæô[a˜¯Á2Ûdgµsδd0ã´^ˆ°÷•.7¼é¼ÿ"{y€Ã8²&D큤‚®J*˜ViÚ>Ñ"¦¬ñam\nvå6%¦ý6¢èˌº«\0*=/[°nlé\'ì„Éd\'"Nà|¸£·šv„œ\\5O:Û± ˆòß¹£”/úh2¨~3¨û=ø|•Rݭ֙{*RÂáy\tGþZuÕÞ¾sYåé\nÞ.O\vÍKHÖkÌ̍ñŸFWÄ:Å8‡ñc¿ªùì@a_kù/”Q2‰Õi@–¢µÇÝÞ\'瞁`N3Y…½´Œ¶?rÏ}™õK&¦\bí¥!C‘7\0Z‘†„\vÕÇÊ­Ro`~ƒ,«Ø¨ðBWë;äРGvðãŒÐwg×J$$ì£ñ/ne²äÈâ6¿R±utô6>\bf}ÃÀ‘ù˜ZºSüE®Êç_el`Û>ö3˜õP´Ó‰Â”Bdþ@WÒXǂáÚÁ*|†EqæÕº@RMÆÒr\rtõŠVî¦ÉH!a7›ð"ü=w¦§§$ål£®“ƒíÛ5i€¯W*K\tÐÿx‹¼³-‘8è·Â{#E0_ƒes”%â÷Ï¿±´6æœiÉ¥WÏN!\fUbÇóš)»aºjpÇ=î+]n­àûéxÓy/;ߨ¿CEûüˆã|·ôq\\ô?×ÛpdMˆ3¯ë›8ÞØÎžY\\•\n^¢T"0­é–*“²\fyÐyªþJ(8FŽ¿ÂÚ쁲kÊm K‰¦†Ì\rýŸN6º\0\0\0\0\0\b\0\t\0\n\0\v\0\r\0\0\0\0\0\0\0#\0+\x003\0;\0C\0S\0c\0s\0ƒ\0£\0Ã\0ã\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ç\0K\0\0\0\0\0\0\0\0\0\t\0\r\0\0\0!\x001\0A\0a\0\0Á\0\b\f 0@`\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0@\0`\0\0\0\bP\0\0\b\0\bs\0\0\0\bp\0\0\b0\0\0\tÀ\0\n\0\0\b`\0\0\b \0\0\t \0\0\b\0\0\0\b€\0\0\b@\0\0\tà\0\0\0\bX\0\0\b\0\0\t\0;\0\0\bx\0\0\b8\0\0\tÐ\0\0\0\bh\0\0\b(\0\0\t°\0\0\b\b\0\0\bˆ\0\0\bH\0\0\tð\0\0\0\bT\0\0\b\0\bã\0+\0\0\bt\0\0\b4\0\0\tÈ\0\r\0\0\bd\0\0\b$\0\0\t¨\0\0\b\0\0\b„\0\0\bD\0\0\tè\0\b\0\0\b\\\0\0\b\0\0\t˜\0S\0\0\b|\0\0\b<\0\0\tØ\0\0\0\bl\0\0\b,\0\0\t¸\0\0\b\f\0\0\bŒ\0\0\bL\0\0\tø\0\0\0\bR\0\0\b\0\b£\0#\0\0\br\0\0\b2\0\0\tÄ\0\v\0\0\bb\0\0\b"\0\0\t¤\0\0\b\0\0\b‚\0\0\bB\0\0\tä\0\0\0\bZ\0\0\b\0\0\t”\0C\0\0\bz\0\0\b:\0\0\tÔ\0\0\0\bj\0\0\b*\0\0\t´\0\0\b\n\0\0\bŠ\0\0\bJ\0\0\tô\0\0\0\bV\0\0\b\0@\b\0\03\0\0\bv\0\0\b6\0\0\tÌ\0\0\0\bf\0\0\b&\0\0\t¬\0\0\b\0\0\b†\0\0\bF\0\0\tì\0\t\0\0\b^\0\0\b\0\0\tœ\0c\0\0\b~\0\0\b>\0\0\tÜ\0\0\0\bn\0\0\b.\0\0\t¼\0\0\b\0\0\bŽ\0\0\bN\0\0\tü\0`\0\0\0\bQ\0\0\b\0\bƒ\0\0\0\bq\0\0\b1\0\0\tÂ\0\n\0\0\ba\0\0\b!\0\0\t¢\0\0\b\0\0\b\0\0\bA\0\0\tâ\0\0\0\bY\0\0\b\0\0\t’\0;\0\0\by\0\0\b9\0\0\tÒ\0\0\0\bi\0\0\b)\0\0\t²\0\0\b\t\0\0\b‰\0\0\bI\0\0\tò\0\0\0\bU\0\0\b\0\b+\0\0\bu\0\0\b5\0\0\tÊ\0\r\0\0\be\0\0\b%\0\0\tª\0\0\b\0\0\b…\0\0\bE\0\0\tê\0\b\0\0\b]\0\0\b\0\0\tš\0S\0\0\b}\0\0\b=\0\0\tÚ\0\0\0\bm\0\0\b-\0\0\tº\0\0\b\r\0\0\b\0\0\bM\0\0\tú\0\0\0\bS\0\0\b\0\bÃ\0#\0\0\bs\0\0\b3\0\0\tÆ\0\v\0\0\bc\0\0\b#\0\0\t¦\0\0\b\0\0\bƒ\0\0\bC\0\0\tæ\0\0\0\b[\0\0\b\0\0\t–\0C\0\0\b{\0\0\b;\0\0\tÖ\0\0\0\bk\0\0\b+\0\0\t¶\0\0\b\v\0\0\b‹\0\0\bK\0\0\tö\0\0\0\bW\0\0\b\0@\b\0\03\0\0\bw\0\0\b7\0\0\tÎ\0\0\0\bg\0\0\b\'\0\0\t®\0\0\b\0\0\b‡\0\0\bG\0\0\tî\0\t\0\0\b_\0\0\b\0\0\tž\0c\0\0\b\0\0\b?\0\0\tÞ\0\0\0\bo\0\0\b/\0\0\t¾\0\0\b\0\0\b\0\0\bO\0\0\tþ\0`\0\0\0\bP\0\0\b\0\bs\0\0\0\bp\0\0\b0\0\0\tÁ\0\n\0\0\b`\0\0\b \0\0\t¡\0\0\b\0\0\0\b€\0\0\b@\0\0\tá\0\0\0\bX\0\0\b\0\0\t‘\0;\0\0\bx\0\0\b8\0\0\tÑ\0\0\0\bh\0\0\b(\0\0\t±\0\0\b\b\0\0\bˆ\0\0\bH\0\0\tñ\0\0\0\bT\0\0\b\0\bã\0+\0\0\bt\0\0\b4\0\0\tÉ\0\r\0\0\bd\0\0\b$\0\0\t©\0\0\b\0\0\b„\0\0\bD\0\0\té\0\b\0\0\b\\\0\0\b\0\0\t™\0S\0\0\b|\0\0\b<\0\0\tÙ\0\0\0\bl\0\0\b,\0\0\t¹\0\0\b\f\0\0\bŒ\0\0\bL\0\0\tù\0\0\0\bR\0\0\b\0\b£\0#\0\0\br\0\0\b2\0\0\tÅ\0\v\0\0\bb\0\0\b"\0\0\t¥\0\0\b\0\0\b‚\0\0\bB\0\0\tå\0\0\0\bZ\0\0\b\0\0\t•\0C\0\0\bz\0\0\b:\0\0\tÕ\0\0\0\bj\0\0\b*\0\0\tµ\0\0\b\n\0\0\bŠ\0\0\bJ\0\0\tõ\0\0\0\bV\0\0\b\0@\b\0\03\0\0\bv\0\0\b6\0\0\tÍ\0\0\0\bf\0\0\b&\0\0\t­\0\0\b\0\0\b†\0\0\bF\0\0\tí\0\t\0\0\b^\0\0\b\0\0\t\0c\0\0\b~\0\0\b>\0\0\tÝ\0\0\0\bn\0\0\b.\0\0\t½\0\0\b\0\0\bŽ\0\0\bN\0\0\tý\0`\0\0\0\bQ\0\0\b\0\bƒ\0\0\0\bq\0\0\b1\0\0\tÃ\0\n\0\0\ba\0\0\b!\0\0\t£\0\0\b\0\0\b\0\0\bA\0\0\tã\0\0\0\bY\0\0\b\0\0\t“\0;\0\0\by\0\0\b9\0\0\tÓ\0\0\0\bi\0\0\b)\0\0\t³\0\0\b\t\0\0\b‰\0\0\bI\0\0\tó\0\0\0\bU\0\0\b\0\b+\0\0\bu\0\0\b5\0\0\tË\0\r\0\0\be\0\0\b%\0\0\t«\0\0\b\0\0\b…\0\0\bE\0\0\të\0\b\0\0\b]\0\0\b\0\0\t›\0S\0\0\b}\0\0\b=\0\0\tÛ\0\0\0\bm\0\0\b-\0\0\t»\0\0\b\r\0\0\b\0\0\bM\0\0\tû\0\0\0\bS\0\0\b\0\bÃ\0#\0\0\bs\0\0\b3\0\0\tÇ\0\v\0\0\bc\0\0\b#\0\0\t§\0\0\b\0\0\bƒ\0\0\bC\0\0\tç\0\0\0\b[\0\0\b\0\0\t—\0C\0\0\b{\0\0\b;\0\0\t×\0\0\0\bk\0\0\b+\0\0\t·\0\0\b\v\0\0\b‹\0\0\bK\0\0\t÷\0\0\0\bW\0\0\b\0@\b\0\03\0\0\bw\0\0\b7\0\0\tÏ\0\0\0\bg\0\0\b\'\0\0\t¯\0\0\b\0\0\b‡\0\0\bG\0\0\tï\0\t\0\0\b_\0\0\b\0\0\tŸ\0c\0\0\b\0\0\b?\0\0\tß\0\0\0\bo\0\0\b/\0\0\t¿\0\0\b\0\0\b\0\0\bO\0\0\tÿ\0\0\0\0A\0@\0!\0 \t\0\b\0@\0\0\0\0\0a\0`\01\00\r\0\fÁ\0@\0\0\0\0\0\0\n\0\0\0\n\0\0\0\v\0\0\0\v\0\0\0\v\0\0\0\v\0\0\0\v\0\0\0\v\0\0\0\n\0\0\0\n\0\0\0\v\0\0\0\n\0\0\0\n\0\0\0\n\0\0\0\n\0A€ø\0\v\v\0\0\0\v\0\0\0\n\0\0\0\n\0\0\0\0\0\0\0\n\0\0\0\0\0\0\0\v\0A°ù\0\vA\0\v\0\0\0\0\0\0\0\0\0\0\0\t\0\0\0\0\v\0\0\0\0\0\0\0\0\0\n\n\n\0\0\t\v\0\0\t\v\0\0\v\0\0\0\0\0Aú\0\v!\0\0\0\0\0\0\0\0\0\v\r\0\r\0\0\0\t\0\0\0\t\0\0\0\0A»ú\0\v\f\0AÇú\0\v\0\0\0\0\0\0\0\0\t\f\0\0\0\0\0\f\0\0\f\0Aõú\0\v\0Aû\0\v\0\0\0\0\0\0\0\t\0\0\0\0\0\0\0\0A¯û\0\v\0A»û\0\v\0\0\0\0\0\0\0\0\t\0\0\0\0\0\0\0\0\0\0\0\0\0Aòû\0\v\0\0\0\0\0\0\0\0\0\t\0A£ü\0\v\0A¯ü\0\v\0\0\0\0\0\0\0\0\t\0\0\0\0\0\0\0\0AÝü\0\v\0Aéü\0\v\'\0\0\0\0\0\0\0\0\t\0\0\0\0\0\0\0\0\x000123456789ABCDEF\0Aý\0\v\t€D\0\0\0\0\0\0A¤ý\0\v\f\0A¼ý\0\v\n\r\0\0\0\0\0\0@D\0AÔý\0\v\0Aäý\0\v\bÿÿÿÿÿÿÿÿ'),A((await async function(A){return async function(A){var t=j;try{var r=await async function(A){return A}(t);return await WebAssembly.instantiate(r,A)}catch(A){s(`failed to asynchronously prepare wasm: ${A}`),a(A);}}(A)}(r)).instance))}(),function(){function A(){if(t.calledRun=!0,!b){if(i=!0,G.i(),v?.(t),t.onRuntimeInitialized?.(),t.postRun)for("function"==typeof t.postRun&&(t.postRun=[t.postRun]);t.postRun.length;){var A=t.postRun.shift();q.push(A);}B(q);}}if(t.preRun)for("function"==typeof t.preRun&&(t.preRun=[t.preRun]);t.preRun.length;)Q();B(u),t.setStatus?(t.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>t.setStatus(""),1),A();},1)):A();}(),i?t:new Promise((A,t)=>{v=A,n=t;})};let bA=null,iA=null;async function oA(){return bA||(iA||(iA=sA().then(A=>(bA=A,A))),iA)}async function aA(A,t,r,e=!1){if(e&&0===A.length)return new Uint8Array(0);const v=await oA(),n=function(A,t){const r=A._malloc(t.length);return A.HEAPU8.set(t,r),r}(v,A),j=v._malloc(4);try{const A=r(v,n,j);if(0===A)throw new Error(`${t} failed`);const e=v.getValue(j,"i32"),f=function(A,t,r){const e=new Uint8Array(r);return e.set(A.HEAPU8.subarray(t,t+r)),e}(v,A,e);return v._free(A),f}finally{v._free(n),v._free(j);}}async function gA(A){return A.bytes?A.bytes():new Uint8Array(await A.arrayBuffer())}class IA{url;_stat;fetchImplementation;baseHeaders;baseOverrides;constructor(A,t={}){this.url=A,this.baseHeaders=t.headers??{},this.baseOverrides=t.overrides??{},this.fetchImplementation=t.fetch??globalThis.fetch.bind(globalThis);}buildRequest(A,t){return {...this.baseOverrides,...A.overrides,headers:{...this.baseHeaders,...A.headers,...t},method:"GET",redirect:"follow",mode:"cors",signal:A.signal}}async fetch(A,t){const r=t=>new Error(`${function(A){return ("object"==typeof A&&null!==A&&"message"in A&&"string"==typeof A.message?A.message:`${A}`).replace(/\.$/,"")}(t)} fetching ${A}`,{cause:t});let e;try{e=await this.fetchImplementation(A,t);}catch(v){if(!`${v}`.includes("Failed to fetch"))throw r(v);console.warn(`generic-filehandle: refetching ${A} to attempt to work around chrome CORS header caching bug`);try{e=await this.fetchImplementation(A,{...t,cache:"reload"});}catch(A){throw r(A)}}return e}async read(A,t,r={}){if(0===A)return new Uint8Array(0);if(Number.isNaN(A)||Number.isNaN(t))throw new TypeError(`read() called with NaN length or position (length=${A}, position=${t}). The index file may be corrupt.`);const e=await this.fetch(this.url,this.buildRequest(r,{range:`bytes=${t}-${t+A-1}`}));if(416===e.status)return new Uint8Array(0);if(!e.ok)throw new Error(`HTTP ${e.status} fetching ${this.url}`);if(200===e.status&&0===t||206===e.status){const t=e.headers.get("content-range"),r=/\/(\d+)$/.exec(t??"");r?.[1]&&(this._stat={size:parseInt(r[1],10)});const v=await gA(e);return this._stat||200!==e.status||(this._stat={size:v.byteLength}),v.byteLength<=A?v:v.subarray(0,A)}throw new Error(200===e.status?`${this.url} fetch returned status 200, expected 206`:`HTTP ${e.status} fetching ${this.url}`)}async readFile(A={}){const t="string"==typeof A?A:A.encoding,r="string"==typeof A?{}:A,e=await this.fetch(this.url,this.buildRequest(r));if(!e.ok)throw new Error(`HTTP ${e.status} fetching ${this.url}`);if("utf8"===t)return e.text();if(t)throw new Error(`unsupported encoding: ${t}`);return gA(e)}async stat(){return this._stat||await this.read(10,0),this._stat??{size:0}}close(){return Promise.resolve()}}class cA{readFile(){return Promise.reject(new Error("unimplemented"))}read(){return Promise.reject(new Error("unimplemented"))}stat(){return Promise.reject(new Error("unimplemented"))}close(){return Promise.reject(new Error("unimplemented"))}}function CA(A,t,r){if(r)return r;if(A)return new IA(A);if(t)return new cA(t);throw new Error("no url, path, or filehandle provided, cannot open")}async function EA(A){return function(A){return aA(A,"zlib_uncompress",(t,r,e)=>t._zlib_uncompress(r,A.length,e),!0)}(A)}class lA{parameters;dataType;constructor(A,t){this.parameters=A,this.dataType=t;}getBytesSubarray(A,t,r){}}class hA extends lA{decode(A,t,r,e){const{blockContentId:v}=this.parameters,n=r[v];if(!n)throw new nA(`no block found with content ID ${v}`);const j=e.externalBlocks.getCursor(v);return this._decodeByteArray(n,j)}_decodeByteArray(A,t){const r=A.content,{stopByte:e}=this.parameters,v=t.bytePosition,n=r.length;let j=v;for(;j<n&&r[j]!==e;)j++;if(j>=n)throw new fA("byteArrayStop reading beyond length of data buffer?");return t.bytePosition=j+1,r.subarray(v,j)}}function dA(A){const t=new Int32Array(A.length);let r=0,e=0;const v=A.length;for(;e<v;){const v=A[e];v<128?(t[r++]=v,e+=1):v<192?(t[r++]=(63&v)<<8|A[e+1],e+=2):v<224?(t[r++]=(31&v)<<16|A[e+1]<<8|A[e+2],e+=3):v<240?(t[r++]=(15&v)<<24|A[e+1]<<16|A[e+2]<<8|A[e+3],e+=4):(t[r++]=(15&v)<<28|A[e+1]<<20|A[e+2]<<12|A[e+3]<<4|15&A[e+4],e+=5);}return t.subarray(0,r)}class kA extends lA{blockContentId;constructor(A,t){if(super(A,t),this.blockContentId=A.blockContentId,"int"!==this.dataType&&"byte"!==this.dataType)throw new vA(`${this.dataType} decoding not yet implemented by EXTERNAL codec`)}decode(A,t,r,e){if("int"===this.dataType){const A=e.preDecodedIntBlocks?.get(this.blockContentId);if(A)return A.values[A.index++];const t=r[this.blockContentId];if(!t)throw new nA(`no block found with content ID ${this.blockContentId}`);const v=e.externalBlocks.getCursor(this.blockContentId);return u(t.content,v)}{const A=r[this.blockContentId];if(!A)throw new nA(`no block found with content ID ${this.blockContentId}`);const t=e.externalBlocks.getCursor(this.blockContentId);if(t.bytePosition>=A.content.length)throw new fA("attempted to read beyond end of block. this file seems truncated.");return A.content[t.bytePosition++]}}getBytesSubarray(A,t,r){const{blockContentId:e}=this.parameters,v=A[e];if(!v)return;const n=t.externalBlocks.getCursor(e),j=n.bytePosition,f=j+r;if(f>v.content.length)throw new fA("attempted to read beyond end of block. this file seems truncated.");return n.bytePosition=f,v.content.subarray(j,f)}}const BA=["raw","gzip","bzip2","lzma","rans","rans4x16","arith","fqzcomp","tok3"],qA=["FILE_HEADER","COMPRESSION_HEADER","MAPPED_SLICE_HEADER","UNMAPPED_SLICE_HEADER","EXTERNAL_DATA","CORE_DATA"];function uA(A,t,r){return r>=3?x(A,t):2===r?Q(A,t):(console.warn("recordCounter=0"),[0,0])}function QA(){return {parser:(A,t=0)=>{const r=new DataView(A.buffer,A.byteOffset,A.length);let e=0;const v=B(A.subarray(e,e+4));e+=4;const n=r.getUint8(e);e+=1;const j=r.getUint8(e);e+=1;const f=k(A.subarray(e,e+20));return e+=20,{value:{magic:v,majorVersion:n,minorVersion:j,fileId:f},offset:e}},maxLength:26}}function xA(A,t,r){const e=B(A.subarray(t,r)),v=[];for(let A=0;A<e.length;A+=3)v.push(e.slice(A,A+3));return v}function mA(){return {parser:(A,t)=>{const[r,e]=Q(A,t);t+=e;const v=A.subarray(t,t+r);t+=r;const n=[];let j=0,f=0;for(;f<v.length;f++)v[f]||(n.push(xA(v,j,f)),j=f+1);return f>j&&n.push(xA(v,j,f)),{value:{size:r,ents:n},offset:t}}}}function NA(A){const t={};for(const{key:r,value:e}of A.ents)t[r]&&console.warn(`duplicate key ${r} in map`),t[r]=e;return t}function wA(A){return "number"==typeof A.refSeqId}function pA(A){return {parser:(t,r)=>{const[e,v]=Q(t,r);r+=v;const[n,j]=uA(t,r,A);r+=j;const[f,s]=Q(t,r);r+=s;const[b,i]=Q(t,r);r+=i;const o=[];for(let A=0;A<b;A++){const[A,e]=Q(t,r);r+=e,o.push(A);}let a;return A>=2&&(a=[...t.subarray(r,r+16)],r+=16),{value:{recordCounter:n,md5:a,contentIds:o,numContentIds:b,numBlocks:f,numRecords:e},offset:r}},maxLength:A=>40+5*A}}function yA(A){return {parser:(t,r)=>{const[e,v]=Q(t,r);r+=v;const[n,j]=Q(t,r);r+=j;const[f,s]=Q(t,r);r+=s;const[b,i]=Q(t,r);r+=i;const[o,a]=uA(t,r,A);r+=a;const[g,I]=Q(t,r);r+=I;const[c,C]=Q(t,r);r+=C;const E=[];for(let A=0;A<c;A++){const[A,e]=Q(t,r);r+=e,E.push(A);}const[l,h]=Q(t,r);let d;return r+=h,A>=2&&(d=[...t.subarray(r,r+16)],r+=16),{value:{md5:d,numBlocks:g,numRecords:b,numContentIds:c,refSeqSpan:f,refSeqId:e,refSeqStart:n,recordCounter:o,refBaseBlockId:l,contentIds:E},offset:r}},maxLength:A=>60+5*A}}function DA(A,t){const r=A,e=new DataView(r.buffer,r.byteOffset,r.length),[v,n]=Q(A,t);t+=n;const[j,f]=Q(A,t);t+=f;const s={};if(0===v);else if(1===v){const[r,e]=Q(A,t);s.blockContentId=r,t+=e;}else if(2===v){const[r,e]=Q(A,t);s.offset=r,t+=e;const[v,n]=Q(A,t);s.M=v,t+=n;}else if(3===v){const[r,e]=Q(A,t);t+=e;const v=[];for(let e=0;e<r;e++){const[r,e]=Q(A,t);v.push(r),t+=e;}const[n,j]=Q(A,t);t+=j;const f=[];for(let r=0;r<n;r++){const[r,e]=Q(A,t);t+=e,f.push(r);}s.numCodes=r,s.symbols=v,s.numLengths=n,s.bitLengths=f;}else if(4===v){const{value:r,offset:e}=DA(A,t);s.lengthsEncoding=r,t=e;const{value:v,offset:n}=DA(A,t);s.valuesEncoding=v,t=n;}else if(5===v){s.stopByte=e.getUint8(t),t+=1;const[r,v]=Q(A,t);s.blockContentId=r,t+=v;}else if(6===v){const[r,e]=Q(A,t);s.offset=r,t+=e;const[v,n]=Q(A,t);s.length=v,t+=n;}else if(7===v){const[r,e]=Q(A,t);s.offset=r,t+=e;const[v,n]=Q(A,t);s.K=v,t+=n;}else if(8===v){const[r,e]=Q(A,t);s.offset=r,t+=e;const[v,n]=Q(A,t);s.log2m=v,t+=n;}else {if(9!==v)throw new Error(`unknown codecId ${v}`);{const[r,e]=Q(A,t);s.offset=r,t+=e;}}return {value:{codecId:v,parametersBytes:j,parameters:s},offset:t}}function FA(){return {parser:(A,t)=>{const[r,e]=Q(A,t);t+=e;const[v,n]=Q(A,t);t+=n;const j=[];for(let r=0;r<v;r++){const r=String.fromCharCode(A[t])+String.fromCharCode(A[t+1]);t+=2;const{value:e,offset:v}=DA(A,t);t=v,j.push({key:r,value:e});}return {value:{mapSize:r,ents:j,mapCount:v},offset:t}}}}function SA(){return {parser:(A,t)=>{const[r,e]=Q(A,t);t+=e;const[v,n]=Q(A,t);t+=n;const j=[];for(let r=0;r<v;r++){const[r,e]=Q(A,t);t+=e;const v=String.fromCharCode(r>>16&255)+String.fromCharCode(r>>8&255)+String.fromCharCode(255&r),{value:n,offset:f}=DA(A,t);t=f,j.push({key:v,value:n});}return {value:{mapSize:r,ents:j,mapCount:v},offset:t}}}}function GA(A){return {maxLength:52,parser:(t,r)=>{const e=t,v=new DataView(e.buffer,e.byteOffset,e.length).getInt32(r,!0);r+=4;const[n,j]=Q(t,r);r+=j;const[f,s]=Q(t,r);r+=s;const[b,i]=Q(t,r);r+=i;const[o,a]=Q(t,r);r+=a;const[g,I]=uA(t,r,A);let c;if(r+=I,A>1){const[A,e]=x(t,r);c=A,r+=e;}const[C,E]=Q(t,r);r+=E;const[l,h]=Q(t,r);return {value:{length:v,refSeqId:n,refSeqStart:f,alignmentSpan:b,numBlocks:C,numLandmarks:l,numBases:c,recordCounter:g,numRecords:o},offset:r+=h}}}}function RA(A){return {parser:(t,r)=>{const e=t,v=new DataView(e.buffer,e.byteOffset,e.length),[n,j]=Q(t,r);r+=j;const f=[];for(let A=0;A<n;A++){const[A,e]=Q(t,r);r+=e,f.push(A);}let s;return A>=3&&(s=v.getUint32(r,!0),r+=4),{value:{...void 0===s?{}:{crc32:s},numLandmarks:n,landmarks:f},offset:r}},maxLength:A=>5+5*A+4}}function KA(A){return {cramFileDefinition:QA(),cramBlockHeader:{parser:(A,t=0)=>{const r=A,e=new DataView(r.buffer,r.byteOffset,r.length);let v=0;const n=e.getUint8(v),j=BA[n];if(!j)throw new Error(`compression method number ${n} not implemented`);v+=1;const f=e.getUint8(v),s=qA[f];if(!s)throw new Error(`invalid block content type id ${f}`);v+=1;const[b,i]=Q(A,v);v+=i;const[o,a]=Q(A,v);v+=a;const[g,I]=Q(A,v);return v+=I,{offset:v,value:{uncompressedSize:g,compressedSize:o,contentId:b,contentType:s,compressionMethod:j}}},maxLength:17},cramBlockCrc32:{parser:(A,t)=>{const r=A,e=new DataView(r.buffer,r.byteOffset,r.length).getUint32(t,!0);return {offset:t+=4,value:{crc32:e}}},maxLength:4},cramDataSeriesEncodingMap:FA(),cramTagEncodingMap:SA(),cramCompressionHeader:{parser:(A,t)=>{const{value:r,offset:e}=((A,t)=>{const r=A,e=new DataView(r.buffer,r.byteOffset,r.length),[v,n]=Q(A,t);t+=n;const[j,f]=Q(A,t);t+=f;const s=[];for(let r=0;r<j;r++){const r=String.fromCharCode(A[t])+String.fromCharCode(A[t+1]);if(t+=2,"MI"===r||"UI"===r||"PI"===r||"RN"===r||"AP"===r||"RR"===r)s.push({key:r,value:!!e.getUint8(t)}),t+=1;else if("SM"===r)s.push({key:r,value:[e.getUint8(t),e.getUint8(t+1),e.getUint8(t+2),e.getUint8(t+3),e.getUint8(t+4)]}),t+=5;else {if("TD"!==r)throw new Error(`unknown key ${r}`);{const{offset:e,value:v}=mA().parser(A,t);s.push({key:r,value:v.ents}),t=e;}}}return {value:{mapSize:v,mapCount:j,ents:s},offset:t}})(A,t);t=e;const{value:v,offset:n}=FA().parser(A,t);t=n;const{value:j,offset:f}=SA().parser(A,t);return t=f,{value:{dataSeriesEncoding:NA(v),preservation:NA(r),tagEncoding:NA(j)},offset:t}}},cramEncoding:{parser:(A,t)=>DA(A,t)},cramUnmappedSliceHeader:pA(A),cramMappedSliceHeader:yA(A),cramContainerHeader1:GA(A),cramContainerHeader2:RA(A)}}function MA(A,t){if("Z"===A)return k(t);if("A"===A)return String.fromCharCode(t[0]);if("C"===A)return t[0];if("c"===A)return t[0]>127?t[0]-256:t[0];if("B"===A)return function(A){const t=String.fromCharCode(A[0]),r=new DataView(A.buffer,A.byteOffset,A.byteLength),e=r.getUint32(1,!0),v=new Array(e);if("c"===t)for(let A=0;A<e;A++)v[A]=r.getInt8(5+A);else if("C"===t)for(let A=0;A<e;A++)v[A]=r.getUint8(5+A);else if("s"===t)for(let A=0;A<e;A++)v[A]=r.getInt16(5+2*A,!0);else if("S"===t)for(let A=0;A<e;A++)v[A]=r.getUint16(5+2*A,!0);else if("i"===t)for(let A=0;A<e;A++)v[A]=r.getInt32(5+4*A,!0);else if("I"===t)for(let A=0;A<e;A++)v[A]=r.getUint32(5+4*A,!0);else {if("f"!==t)throw new Error(`unknown type: ${t}`);for(let A=0;A<e;A++)v[A]=r.getFloat32(5+4*A,!0);}return v}(t);if("H"===A)return Number.parseInt(k(t).replace(/^0x/,""),16);const r=new DataView(t.buffer,t.byteOffset,t.byteLength);if("I"===A)return r.getUint32(0,!0);if("i"===A)return r.getInt32(0,!0);if("s"===A)return r.getInt16(0,!0);if("S"===A)return r.getUint16(0,!0);if("f"===A)return r.getFloat32(0,!0);throw new nA(`Unrecognized tag type ${A}`)}function OA(A,t,r){const e=t?.("QS",A);if(e)return e;const v=new Uint8Array(A);for(let t=0;t<A;t++)v[t]=r();return v}function HA(A,t,r,e,v,n,j,f,s,b,i,o,a,g){let I=t.BF();const c=t.CF();if(!wA(n.parsedContent))throw new Error("slice header not mapped");const C=b>1&&-2===n.parsedContent.refSeqId?t.RI():n.parsedContent.refSeqId,E=t.RL();let l=t.AP();v.APdelta&&(l+=s.lastAlignmentStart),s.lastAlignmentStart=l;const h=t.RG();let d,q,u,Q;if(v.readNamesIncluded&&(d=t.RN()),S.isDetached(c)){const A=t.MF();let r;v.readNamesIncluded||(d=t.RN(),r=k(d));const e=t.NS(),n=t.NP();(A||e>-1)&&(q={flags:A,sequenceId:e,alignmentStart:n,readName:r}),u=t.TS(),G.isUnmapped(A)&&(I=F.setMateUnmapped(I)),G.isOnNegativeStrand(A)&&(I=F.setMateReverseComplemented(I));}else S.isWithMateDownstream(c)&&(Q=t.NF()+i+1);const x=t.TL();if(x<0)throw new nA("invalid TL index");const m={},N=v.getTagNames(x),w=N.length;if(!1!==a?.decodeTags)for(let A=0;A<w;A++){const t=N[A],r=e[t](),v=t[0]+t[1],n=t[2];m[v]=void 0===r?void 0:"number"==typeof r?r:MA(n,r);}let p,y,D,R,K;if(F.isSegmentUnmapped(I))S.isDecodeSequenceAsStar(c)?(K=null,R=null):(K=function(A,t,r){const e=t?.("BA",A);if(e)return B(e);const v=new Uint8Array(A);for(let t=0;t<A;t++)v[t]=r();return B(v)}(E,g,t.BA),S.isPreservingQualityScores(c)&&(R=OA(E,g,t.QS)));else {const A=t.FN();if(y=E,A){const[e,v]=function(A,t,r,e){let v=0,n=0;const j=A-1,f=new Array(t),s=r.FC,b=r.FP;for(let A=0;A<t;A++){const t=s();v+=b();const r=e[t];if(!r)throw new nA(`invalid read feature code "${String.fromCharCode(t)}"`);const i=r[0],o=r[1]();f[A]={code:i,pos:v,refPos:v+j+n,data:o},"D"===i||"N"===i?n+=o:"I"===i||"S"===i?n-=o.length:"i"===i&&(n-=1);}return [f,n]}(l,A,t,r);p=e,y+=v;}Number.isNaN(y)&&(console.warn(`${C}:${l} record has invalid read features`),y=E),D=t.MQ(),S.isPreservingQualityScores(c)&&(R=OA(E,g,t.QS));}return {readLength:E,sequenceId:C,cramFlags:c,flags:I,alignmentStart:l,readGroupId:h,readNameRaw:d,mate:q,templateSize:u,mateRecordNumber:Q,readFeatures:p,lengthOnRef:y,mappingQuality:D,qualityScores:R,readBases:K,tags:m,uniqueId:o}}function LA(A,t,r){let{bytePosition:e,bitPosition:v}=t;if(1===r){const r=A[e]>>v&1;return v-=1,v<0&&(e+=1,v=7),t.bytePosition=e,t.bitPosition=v,r}let n=0;for(let t=0;t<r;t++)n<<=1,n|=A[e]>>v&1,v-=1,v<0&&(e+=1,v=7);return t.bytePosition=e,t.bitPosition=v,n}const JA={1:kA,3:class extends lA{codes={};codeBook={};sortedCodes=[];valuesByIndex=[];bitLengthsByIndex=[];bitCodeToIndex=[];constructor(A,t){if(super(A,t),!["byte","int"].includes(this.dataType))throw new TypeError(`${this.dataType} decoding not yet implemented by HUFFMAN_INT codec`);this.buildCodeBook(),this.buildCodes(),this.buildCaches(),this.sortedCodes.length>0&&0===this.sortedCodes[0].bitLength&&(this._decode=this._decodeZeroLengthCode);}buildCodeBook(){const A=new Array(this.parameters.numCodes);for(let t=0;t<this.parameters.numCodes;t++)A[t]={symbol:this.parameters.symbols[t],bitLength:this.parameters.bitLengths[t]};A.sort((A,t)=>A.bitLength-t.bitLength||A.symbol-t.symbol),this.codeBook={},A.forEach(A=>{this.codeBook[A.bitLength]||(this.codeBook[A.bitLength]=[]),this.codeBook[A.bitLength].push(A.symbol);});}buildCodes(){this.codes={};let A=0,t=-1;Object.entries(this.codeBook).forEach(([r,e])=>{const v=Number.parseInt(r,10);e.forEach(r=>{const e={bitLength:v,value:r,bitCode:0};t+=1;const n=v-A;if(t<<=n,e.bitCode=t,A+=n,function(A){let t=A-(A>>1)&1431655765;return t=(858993459&t)+(t>>2&858993459),16843009*(t+(t>>4)&252645135)>>24}(t)>v)throw new nA("Symbol out of range");this.codes[r]=e;});});}buildCaches(){if(this.sortedCodes=Object.values(this.codes).sort((A,t)=>A.bitLength-t.bitLength||A.bitCode-t.bitCode),this.valuesByIndex=this.sortedCodes.map(A=>A.value),this.bitLengthsByIndex=this.sortedCodes.map(A=>A.bitLength),this.sortedCodes.length>0){let A=0;for(const t of this.sortedCodes)t.bitCode>A&&(A=t.bitCode);this.bitCodeToIndex=new Array(A+1).fill(-1);for(let A=0;A<this.sortedCodes.length;A++)this.bitCodeToIndex[this.sortedCodes[A].bitCode]=A;}}decode(A,t,r,e){return this._decode(A,t,e.coreBlock)}_decodeZeroLengthCode(){return this.sortedCodes[0].value}_decode(A,t,r){const e=t.content;let v=0,n=0;for(let A=0;A<this.sortedCodes.length;A+=1){const t=this.sortedCodes[A].bitLength,j=t-v;j>0&&(n<<=j,n|=LA(e,r,j)),v=t;const f=this.bitCodeToIndex[n]??-1;if(f>-1&&this.bitLengthsByIndex[f]===t)return this.valuesByIndex[f];for(;A+1<this.sortedCodes.length&&this.sortedCodes[A+1].bitLength===t;)A+=1;}throw new nA("Huffman symbol not found.")}},4:class extends lA{instantiateCodec;_lengthCodecCache;_dataCodecCache;constructor(A,t,r){super(A,t),this.instantiateCodec=r;}decode(A,t,r,e){const v=this._getLengthCodec().decode(A,t,r,e);if(v>0){const n=this._getDataCodec(),j=n.getBytesSubarray(r,e,v);if(j)return j;{const j=new Uint8Array(v);for(let f=0;f<v;f+=1)j[f]=n.decode(A,t,r,e);return j}}return new Uint8Array(0)}_getLengthCodec(){return this._lengthCodecCache??=this.instantiateCodec(this.parameters.lengthsEncoding,"int"),this._lengthCodecCache}_getDataCodec(){return this._dataCodecCache??=this.instantiateCodec(this.parameters.valuesEncoding,"byte"),this._dataCodecCache}},5:hA,6:class extends lA{constructor(A,t){if(super(A,t),"int"!==this.dataType)throw new vA(`${this.dataType} decoding not yet implemented by BETA codec`)}decode(A,t,r,e){return function(A,t,r,e){let{bytePosition:v,bitPosition:n}=t;if(8===r&&7===n){const r=A[v];return t.bytePosition=v+1,r-e}let j=0;for(let t=0;t<r;t++)j<<=1,j|=A[v]>>n&1,n-=1,n<0&&(v+=1,n=7);return t.bytePosition=v,t.bitPosition=n,j-e}(t.content,e.coreBlock,this.parameters.length,this.parameters.offset)}},7:class extends lA{constructor(A,t){if(super(A,t),"int"!==this.dataType)throw new vA(`${this.dataType} decoding not yet implemented by SUBEXP codec`)}decode(A,t,r,e){return function(A,t,r,e){let{bytePosition:v,bitPosition:n}=t,j=0;for(;;){const t=A[v]>>n&1;if(n-=1,n<0&&(v+=1,n=7),0===t)break;j+=1;}const f=0===j?r:j+r-1;let s=0;for(let t=0;t<f;t++)s<<=1,s|=A[v]>>n&1,n-=1,n<0&&(v+=1,n=7);return t.bytePosition=v,t.bitPosition=n,(0===j?s:1<<f|s)-e}(t.content,e.coreBlock,this.parameters.K,this.parameters.offset)}},9:class extends lA{constructor(A,t){if(super(A,t),"int"!==this.dataType)throw new vA(`${this.dataType} decoding not yet implemented by GAMMA codec`)}decode(A,t,r,e){return function(A,t,r){let{bytePosition:e,bitPosition:v}=t,n=1;for(;;){if(e>=A.length)throw new fA("read beyond end of core block; file seems truncated");const t=A[e]>>v&1;if(v-=1,v<0&&(e+=1,v=7),1===t)break;n+=1;}let j=0;const f=n-1;if(f>0)for(let t=0;t<f;t++)j<<=1,j|=A[e]>>v&1,v-=1,v<0&&(e+=1,v=7);return t.bytePosition=e,t.bitPosition=v,(j|1<<n-1)-r}(t.content,e.coreBlock,this.parameters.offset)}}};function _A(A,t){const r=(e="ignore"===t?0:A.codecId,JA[e]);var e;if(!r)throw new vA(`no codec implemented for codec ID ${A.codecId}`);return new r(A.parameters,t,_A)}const PA={BF:"int",CF:"int",RI:"int",RL:"int",AP:"int",RG:"int",MF:"int",NS:"int",NP:"int",TS:"int",NF:"int",TC:"byte",TN:"int",FN:"int",FC:"byte",FP:"int",BS:"byte",IN:"byteArray",SC:"byteArray",DL:"int",BA:"byte",BB:"byteArray",RS:"int",PD:"int",HC:"int",MQ:"int",RN:"byteArray",QS:"byte",QQ:"byteArray",TL:"int"},$A=[["C","G","T","N"],["A","G","T","N"],["A","C","T","N"],["A","C","G","N"],["A","C","G","T"]];class YA{readNamesIncluded;APdelta;referenceRequired;tagIdsDictionary;substitutionMatrix;dataSeriesCodecCache={};tagCodecCache={};tagEncoding={};dataSeriesEncoding;constructor(A){this.readNamesIncluded=A.preservation.RN??!1,this.APdelta=A.preservation.AP??!0,this.referenceRequired=A.preservation.RR??!0,this.tagIdsDictionary=A.preservation.TD,this.substitutionMatrix=function(A){const t=new Array(5);for(let r=0;r<5;r++){const e=new Array(4),v=A[r],n=$A[r];for(let A=0;A<4;A++)e[v>>6-2*A&3]=n[A];t[r]=e;}return t}(A.preservation.SM),this.dataSeriesEncoding=A.dataSeriesEncoding,this.tagEncoding=A.tagEncoding;}getCodecForTag(A){if(!this.tagCodecCache[A]){const t=this.tagEncoding[A];if(!t)throw new Error("Error, no tag encoding");this.tagCodecCache[A]=_A(t,"byteArray");}return this.tagCodecCache[A]}getTagNames(A){return this.tagIdsDictionary[A]}getCodecForDataSeries(A){let t=this.dataSeriesCodecCache[A];if(void 0===t){const r=this.dataSeriesEncoding[A];r&&(t=_A(r,PA[A]),this.dataSeriesCodecCache[A]=t);}return t}toJSON(){const A={};return Object.keys(this).forEach(t=>{t.endsWith("Cache")||(A[t]=this[t]);}),A}}const TA=new Uint8Array(0);function UA(A,t,r,e){const v=!!(e.mate||void 0!==e.mateRecordNumber&&e.mateRecordNumber!==t);if(!r.readName){const A=String(r.uniqueId);r._syntheticReadName=A,e._syntheticReadName=A;}r.mate={sequenceId:e.sequenceId,alignmentStart:e.alignmentStart,uniqueId:e.uniqueId},e.readName&&(r.mate.readName=e.readName),e.mate||void 0!==e.mateRecordNumber||(e.mate={sequenceId:r.sequenceId,alignmentStart:r.alignmentStart,uniqueId:r.uniqueId},r.readName&&(e.mate.readName=r.readName)),r.flags|=j,e.flags&s&&(r.flags|=b),r.flags&s&&(e.flags|=b),e.flags&i&&(r.flags|=o),r.flags&i&&(e.flags|=o),void 0===r.templateLength&&(v?function(A,t,r){const e=[r];let v=r;for(;void 0!==v.mateRecordNumber&&v.mateRecordNumber>=0;){const t=A[v.mateRecordNumber];if(!t)throw new nA("intra-slice mate record not found, this file seems malformed");e.push(t),v=t;}let n=e[0].alignmentStart,j=n+e[0].readLength-1;for(let A=1;A<e.length;A++){const t=e[A];t.alignmentStart<n&&(n=t.alignmentStart);const r=t.alignmentStart+t.readLength-1;r>j&&(j=r);}const f=j-n+1;f>=0&&e.forEach(A=>{if(void 0!==A.templateLength)throw new nA("mate pair group has some members that have template lengths already, this file seems malformed");A.templateLength=A.alignmentStart===n?f:-f;});}(A,0,r):function(A,t){const r=Math.min(A.alignmentStart,t.alignmentStart),e=Math.max(A.alignmentStart+A.readLength-1,t.alignmentStart+t.readLength-1)-r+1;A.templateLength=A.alignmentStart<=t.alignmentStart?e:-e,t.templateLength=t.alignmentStart<=A.alignmentStart?e:-e;}(r,e)),r.mateRecordNumber=void 0;}class zA{file;container;containerPosition;sliceSize;_headerResult;_blocksResult;_blocksContentIdIndexResult;constructor(A,t,r){this.file=A.file,this.container=A,this.containerPosition=t,this.sliceSize=r;}getHeader(){return void 0===this._headerResult&&(this._headerResult=this._fetchHeader(),this._headerResult.catch(()=>{this._headerResult=void 0;})),this._headerResult}async _fetchHeader(){const{majorVersion:A}=await this.file.getDefinition(),t=KA(A),r=await this.container.getHeader(),e=await this.file.readBlock(r._endPosition+this.containerPosition),v="MAPPED_SLICE_HEADER"===e.contentType?t.cramMappedSliceHeader.parser:"UNMAPPED_SLICE_HEADER"===e.contentType?t.cramUnmappedSliceHeader.parser:void 0;if(v){const A=m(e.content,v,0,r._endPosition);return {...e,parsedContent:A}}throw new nA(`error reading slice header block, invalid content type ${e.contentType}`)}getBlocks(){return void 0===this._blocksResult&&(this._blocksResult=this._fetchBlocks(),this._blocksResult.catch(()=>{this._blocksResult=void 0;})),this._blocksResult}async _fetchBlocks(){const A=await this.getHeader();if(this.sliceSize){const t=(await this.container.getHeader())._endPosition+this.containerPosition,r=A._endPosition,e=r-t,v=this.sliceSize-e,n=await this.file.read(v,r),j=new Array(A.parsedContent.numBlocks);let f=0;for(let A=0;A<j.length;A++){const t=await this.file.readBlockFromBuffer(n,f,r+f);j[A]=t,f=t._endPosition-r;}return j}let t=A._endPosition;const r=new Array(A.parsedContent.numBlocks);for(let A=0;A<r.length;A++){const e=await this.file.readBlock(t);r[A]=e,t=e._endPosition;}return r}async getCoreDataBlock(){return (await this.getBlocks())[0]}_getBlocksContentIdIndex(){return void 0===this._blocksContentIdIndexResult&&(this._blocksContentIdIndexResult=this._fetchBlocksContentIdIndex(),this._blocksContentIdIndexResult.catch(()=>{this._blocksContentIdIndexResult=void 0;})),this._blocksContentIdIndexResult}async _fetchBlocksContentIdIndex(){const A=await this.getBlocks(),t={};return A.forEach(A=>{"EXTERNAL_DATA"===A.contentType&&(t[A.contentId]=A);}),t}async getBlockByContentId(A){return (await this._getBlocksContentIdIndex())[A]}async getReferenceRegion(){const A=(await this.getHeader()).parsedContent;if(!wA(A))throw new Error("slice header not mapped");if(A.refSeqId<0)return;const t=await this.container.getCompressionScheme();if(void 0===t)throw new Error("compression scheme undefined");if(A.refBaseBlockId>=0){const t=await this.getBlockByContentId(A.refBaseBlockId);if(!t)throw new nA("embedded reference specified, but reference block does not exist");return {seq:B(t.content),start:A.refSeqStart,end:A.refSeqStart+A.refSeqSpan-1,span:A.refSeqSpan}}if(t.referenceRequired||this.file.fetchReferenceSequenceCallback){if(!this.file.fetchReferenceSequenceCallback)throw new Error("reference sequence not embedded, and seqFetch callback not provided, cannot fetch reference sequence");const t=await this.file.fetchReferenceSequenceCallback(A.refSeqId,A.refSeqStart,A.refSeqStart+A.refSeqSpan-1);if(t.length!==A.refSeqSpan)throw new jA("seqFetch callback returned a reference sequence of the wrong length");return {seq:t,start:A.refSeqStart,end:A.refSeqStart+A.refSeqSpan-1,span:A.refSeqSpan}}}getAllRecords(){return this.getRecords(()=>!0)}async _fetchRecords(A){const{majorVersion:t}=await this.file.getDefinition(),r=await this.container.getCompressionScheme();if(void 0===r)throw new Error("compression scheme undefined");const e=await this.getHeader(),v=await this._getBlocksContentIdIndex();if(t>1&&this.file.options.checkSequenceMD5&&wA(e.parsedContent)&&e.parsedContent.refSeqId>=0&&"0000000000000000"!==e.parsedContent.md5?.join("")){const A=await this.getReferenceRegion();if(A){const{seq:t,start:r,end:v}=A,n=function(A){return l(A.toUpperCase().replaceAll(/[^\u0021-\u007e]/g,""))}(t),j=e.parsedContent.md5?.map(A=>(A<16?"0":"")+A.toString(16)).join("");if(n!==j)throw new nA(`MD5 checksum reference mismatch for ref ${e.parsedContent.refSeqId} pos ${r}..${v}. recorded MD5: ${j}, calculated MD5: ${n}`)}}const n=await this.getCoreDataBlock(),j=new Map,f={lastAlignmentStart:wA(e.parsedContent)?e.parsedContent.refSeqStart:0,coreBlock:{bitPosition:7,bytePosition:0},externalBlocks:{getCursor(A){let t=j.get(A);return void 0===t&&(t={bitPosition:7,bytePosition:0},j.set(A,t)),t}}},s=new Set,b=new Set;function i(A,t){A&&(1===A.codecId?t?s.add(A.parameters.blockContentId):b.add(A.parameters.blockContentId):4===A.codecId?(i(A.parameters.lengthsEncoding,!0),i(A.parameters.valuesEncoding,!1)):5===A.codecId&&b.add(A.parameters.blockContentId));}for(const[A,t]of Object.entries(r.dataSeriesEncoding))i(t,"int"===PA[A]);for(const A of Object.values(r.tagEncoding))i(A,!1);for(const A of b)s.delete(A);const o=new Map;for(const A of s){const t=v[A];if(t?.content.length){const r=dA(t.content);o.set(A,{values:r,index:0});}}f.preDecodedIntBlocks=o;const a=A=>{const t=r.getCodecForDataSeries(A);if(!t)return ()=>{throw new nA(`no codec defined for ${A} data series`)};if(t instanceof kA){const A=t.parameters.blockContentId,r=o.get(A);if(r){const{values:A}=r;return ()=>A[r.index++]}const e=v[A];if(!e)return ()=>{throw new nA(`no block found with content ID ${A}`)};const n=f.externalBlocks.getCursor(A),j=e.content;return "int"===t.dataType?()=>u(j,n):()=>{if(n.bytePosition>=j.length)throw new fA("attempted to read beyond end of block. this file seems truncated.");return j[n.bytePosition++]}}if(t instanceof hA){const{blockContentId:A,stopByte:r}=t.parameters,e=v[A];if(!e)return ()=>{throw new nA(`no block found with content ID ${A}`)};const n=e.content,j=f.externalBlocks.getCursor(A);return ()=>{const A=j.bytePosition,t=n.length;let e=A;for(;e<t&&n[e]!==r;)e++;if(e>=t)throw new fA("byteArrayStop reading beyond length of data buffer?");return j.bytePosition=e+1,n.subarray(A,e)}}return ()=>t.decode(this,n,v,f)},g={BF:a("BF"),CF:a("CF"),RI:a("RI"),RL:a("RL"),AP:a("AP"),RG:a("RG"),RN:a("RN"),MF:a("MF"),NS:a("NS"),NP:a("NP"),TS:a("TS"),NF:a("NF"),TL:a("TL"),FN:a("FN"),FC:a("FC"),FP:a("FP"),DL:a("DL"),BB:a("BB"),QQ:a("QQ"),BS:a("BS"),IN:a("IN"),RS:a("RS"),PD:a("PD"),HC:a("HC"),SC:a("SC"),MQ:a("MQ"),BA:a("BA"),QS:a("QS"),TC:a("TC"),TN:a("TN")},I=r.getCodecForDataSeries("QS"),c=r.getCodecForDataSeries("BA"),C=I||c?(A,t)=>{const r="QS"===A?I:c;return r?.getBytesSubarray(v,f,t)}:void 0,E={},h=A=>{const t=r.getCodecForTag(A);return ()=>t.decode(this,n,v,f)};for(const A of Object.keys(r.tagEncoding)){const t=r.tagEncoding[A];if(4===t.codecId&&1===t.parameters.lengthsEncoding.codecId&&1===t.parameters.valuesEncoding.codecId){const r=t.parameters.lengthsEncoding.parameters.blockContentId,e=t.parameters.valuesEncoding.parameters.blockContentId,n=v[r],j=v[e];if(!n||!j){E[A]=h(A);continue}const s=j.content,b=f.externalBlocks.getCursor(e),i=o.get(r),a=n.content,g=f.externalBlocks.getCursor(r),I=i?()=>i.values[i.index++]:()=>u(a,g);E[A]=()=>{const A=I();if(0===A)return TA;const t=b.bytePosition,r=t+A;if(r>s.length)throw new fA("attempted to read beyond end of block. this file seems truncated.");return b.bytePosition=r,s.subarray(t,r)};}else E[A]=h(A);}const d=new Array(e.parsedContent.numRecords),k=function(A,t){const r=t>1?A.SC:A.IN,e=new Array(128);return e["B".charCodeAt(0)]=["B",()=>[String.fromCharCode(A.BA()),A.QS()]],e["X".charCodeAt(0)]=["X",()=>A.BS()],e["D".charCodeAt(0)]=["D",()=>A.DL()],e["I".charCodeAt(0)]=["I",()=>B(A.IN())],e["i".charCodeAt(0)]=["i",()=>String.fromCharCode(A.BA())],e["b".charCodeAt(0)]=["b",()=>B(A.BB())],e["q".charCodeAt(0)]=["q",()=>Array.from(A.QQ())],e["Q".charCodeAt(0)]=["Q",()=>A.QS()],e["H".charCodeAt(0)]=["H",()=>A.HC()],e["P".charCodeAt(0)]=["P",()=>A.PD()],e["N".charCodeAt(0)]=["N",()=>A.RS()],e["S".charCodeAt(0)]=["S",()=>B(r())],e}(g,t);for(let v=0;v<d.length;v+=1)try{d[v]=new R(HA(0,g,k,E,r,e,0,0,f,t,v,e.contentPosition+e.parsedContent.recordCounter+v+1,A,C));}catch(A){const t=A;if("CRAM_BUFFER_OVERRUN"===t.code){const A=v,r=e.parsedContent.numRecords;throw new nA(`Failed to decode all records in slice. Decoded ${A} of ${r} expected records. Buffer overrun suggests either: (1) file is truncated/corrupted, (2) compression scheme is incorrect, or (3) there's a bug in the decoder. Original error: ${t.message}`)}throw A}for(let A=0;A<d.length;A+=1){const t=d[A],{mateRecordNumber:r}=t;void 0!==r&&r>=0&&d[r]&&UA(d,A,t,d[r]);}return d}async getRecords(A,t){const r={...w,...t},e=""+(r.decodeTags?1:0),v=`${this.container.filePosition}:${this.containerPosition}:${e}`;let n=this.file.featureCache.get(v);n||(n=this._fetchRecords(r),this.file.featureCache.set(v,n));const j=(await n).filter(A);if(j.length&&this.file.fetchReferenceSequenceCallback){const A=await this.getHeader();if(wA(A.parsedContent)&&(A.parsedContent.refSeqId>=0||-2===A.parsedContent.refSeqId)){const t=A.parsedContent.refSeqId>=0?A.parsedContent.refSeqId:void 0,r=await this.container.getCompressionScheme();if(void 0===r)throw new Error("compression scheme undefined");const e={};for(const A of j){const r=void 0!==t?t:A.sequenceId;let v=e[r];v||(v={id:r,start:A.alignmentStart,end:Number.NEGATIVE_INFINITY,seq:null},e[r]=v);const n=A.alignmentStart+(A.lengthOnRef||A.readLength)-1;n>v.end&&(v.end=n),A.alignmentStart<v.start&&(v.start=A.alignmentStart);}await Promise.all(Object.values(e).map(async A=>{-1!==A.id&&A.start<=A.end&&this.file.fetchReferenceSequenceCallback&&(A.seq=await this.file.fetchReferenceSequenceCallback(A.id,A.start,A.end));}));for(const A of j){const v=e[void 0!==t?t:A.sequenceId];if(v?.seq){const t=v.seq;A.addReferenceSequence({...v,seq:t},r);}}}}return j}}class VA{file;filePosition;_headerResult;_compressionHeaderBlockResult;_compressionSchemeResult;constructor(A,t){this.file=A,this.filePosition=t;}getHeader(){return void 0===this._headerResult&&(this._headerResult=this._fetchHeader(),this._headerResult.catch(()=>{this._headerResult=void 0;})),this._headerResult}_fetchHeader(){return this._readContainerHeader(this.filePosition)}async getCompressionHeaderBlock(){return void 0===this._compressionHeaderBlockResult&&(this._compressionHeaderBlockResult=this._fetchCompressionHeaderBlock(),this._compressionHeaderBlockResult.catch(()=>{this._compressionHeaderBlockResult=void 0;})),this._compressionHeaderBlockResult}async _fetchCompressionHeaderBlock(){if(!(await this.getHeader()).numRecords)return null;const{majorVersion:A}=await this.file.getDefinition(),t=KA(A),r=await this.getFirstBlock();if("COMPRESSION_HEADER"!==r.contentType)throw new nA(`invalid content type ${r.contentType} in compression header block`);const e=m(r.content,t.cramCompressionHeader.parser,0,r.contentPosition);return {...r,parsedContent:e}}async getFirstBlock(){const A=await this.getHeader();return this.file.readBlock(A._endPosition)}async getCompressionScheme(){return void 0===this._compressionSchemeResult&&(this._compressionSchemeResult=this._fetchCompressionScheme(),this._compressionSchemeResult.catch(()=>{this._compressionSchemeResult=void 0;})),this._compressionSchemeResult}async _fetchCompressionScheme(){const A=await this.getCompressionHeaderBlock();if(A)return new YA(A.parsedContent)}getSlice(A,t){return new zA(this,A,t)}async _readContainerHeader(A){const{majorVersion:t}=await this.file.getDefinition(),r=KA(t),{cramContainerHeader1:e,cramContainerHeader2:v}=r,n=m(await this.file.read(e.maxLength,A),e.parser),j=-128&(f=n.numLandmarks)?-16384&f?-2097152&f?-268435456&f?5:4:3:2:1;var f;const s=m(await this.file.read(v.maxLength(n.numLandmarks),A+n._size-j),v.parser);return this.file.validateChecksums&&void 0!==s.crc32&&await this.file.checkCrc32(A,n._size+s._size-j-4,s.crc32,`container header beginning at position ${A}`),{...n,...s,_size:n._size+s._size-j,_endPosition:n._size+s._size-j+A}}}class XA{exports;memory;ptr;bufSize;inStart;outStart;mem8;mem32;constructor(A){this.exports=A.exports,this.memory=this.exports.memory,this.ptr=this.exports.create_context(),this._refresh(),this.bufSize=this.mem32[0],this.inStart=this.mem32[1]-this.ptr,this.outStart=this.mem32[4]-this.ptr;}supplyInput(A){this._refresh(),this.mem8.subarray(this.inStart,this.inStart+this.bufSize).set(A,0),this.exports.supply_input(this.ptr,A.byteLength);}getNextOutput(){const A=this.exports.get_next_output(this.ptr);if(this._refresh(),0!==A&&1!==A)throw new Error(`get_next_output failed with error code ${A}`);return {outChunk:this.mem8.slice(this.outStart,this.outStart+this.mem32[5]),finished:1===A}}dispose(){this.exports.destroy_context(this.ptr);}_refresh(){const A=this.memory.buffer;A!==this.mem8?.buffer&&(this.mem8=new Uint8Array(A,this.ptr),this.mem32=new Uint32Array(A,this.ptr));}}let WA,ZA;const At=new Uint8Array(0);let tt;class rt{file;validateChecksums;fetchReferenceSequenceCallback;options;featureCache;header;_sectionParsers;_definitionResult;_samHeaderResult;constructor(A){if(this.file=CA(A.url,A.path,A.filehandle),this.validateChecksums=A.validateChecksums??!1,this.fetchReferenceSequenceCallback=A.seqFetch,this.options={checkSequenceMD5:A.checkSequenceMD5,cacheSize:A.cacheSize??2e4},this.featureCache=new AA({maxSize:this.options.cacheSize}),void 0===tt&&(tt=68===new Uint8Array(new Uint32Array([287454020]).buffer)[0]),!tt)throw new Error("Detected big-endian machine, may be unable to run")}read(A,t){return this.file.read(A,t)}async _getSectionParsers(){if(!this._sectionParsers){const{majorVersion:A}=await this.getDefinition();this._sectionParsers=KA(A);}return this._sectionParsers}async getDefinition(){return void 0===this._definitionResult&&(this._definitionResult=this._fetchDefinition(),this._definitionResult.catch(()=>{this._definitionResult=void 0;})),this._definitionResult}async _fetchDefinition(){const{maxLength:A,parser:t}=QA(),r=t(await this.file.read(A,0)).value;if("CRAM"!==r.magic)throw new Error("Not a CRAM file, does not match magic string");if(2!==r.majorVersion&&3!==r.majorVersion)throw new vA(`CRAM version ${r.majorVersion} not supported`);return r}async getSamHeader(){return void 0===this._samHeaderResult&&(this._samHeaderResult=this._fetchSamHeader(),this._samHeaderResult.catch(()=>{this._samHeaderResult=void 0;})),this._samHeaderResult}async _fetchSamHeader(){const A=await this.getContainerById(0);if(!A)throw new nA("file contains no containers");const t=(await A.getFirstBlock()).content,r=new DataView(t.buffer,t.byteOffset,t.byteLength).getInt32(0,!0),e=B(t.subarray(4,4+r));return this.header=e,function(A){const t=A.split(/\r?\n/),r=[];for(const A of t){const[t,...e]=A.split(/\t/);t&&r.push({tag:t.slice(1),data:e.map(A=>{const t=A.indexOf(":");return -1!==t?{tag:A.slice(0,t),value:A.slice(t+1)}:{tag:A,value:""}})});}return r}(e)}async getHeaderText(){return await this.getSamHeader(),this.header}async*iterContainers(){let A=(await this._getSectionParsers()).cramFileDefinition.maxLength,t=0;for(;;){const r=this.getContainerAtPosition(A),e=await r.getHeader();if(yield r,0===t){A=e._endPosition;for(let t=0;t<e.numBlocks;t++)A=(await this.readBlock(A))._endPosition;}else A+=e._size+e.length;t++;}}async getContainerById(A){let t=0;for await(const r of this.iterContainers()){if(t===A)return r;t++;}}async checkCrc32(A,t,r,e){const v=await this.file.read(t,A),n=rA(v)>>>0;if(n!==r)throw new nA(`crc mismatch in ${e}: recorded CRC32 = ${r}, but calculated CRC32 = ${n}`)}async containerCount(){let A=0;try{for await(const t of this.iterContainers())A+=1;}catch(t){A--;}return A}getContainerAtPosition(A){return new VA(this,A)}async readBlockHeader(A){const{cramBlockHeader:t}=await this._getSectionParsers();return m(await this.file.read(t.maxLength,A),t.parser,0,A)}async _parseSection(A,t,r=A.maxLength,e){const v=m(e??await this.file.read(r,t),A.parser,0,t);if(v._size!==r)throw new nA(`section read error: requested size ${r} does not equal parsed size ${v._size}`);return v}async _uncompress(A,t,r){let e;if("gzip"===A)e=await EA(t);else if("bzip2"===A)e=await(v=t,n=r,aA(v,"bz2_uncompress",(A,t,r)=>A._bz2_uncompress(t,v.length,n,r),!0));else if("lzma"===A)e=await async function(A){ZA||await(WA||(WA=async function(){const A="data:application/wasm;base64,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ACABQX9qIgENAAsgAkJ/hSECCyACC8oQAgx/An4CQAJAIAAoAiRFDQAgACgCACECDAELQQAhAiAAQQA6ACggAEIANwMAIABCADcDGCAAQcgAakEAQeQAEIaAgIAAGiAAQawBakEMNgIACyAAIAEoAgQiAzYCECAAQeAAaiEEIABByABqIQUgAEG2AWohBiAAQbABaiEHIABBqAFqIQggASgCECEJAkACQAJAAkADQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCACDgoBAgAEBQYHCAkKDwsgASgCACEKIAAoAqgBIQIgACgCrAEhCyABKAIEIQwgASgCCCENDAILIAcgACgCqAEiDGogASgCACABKAIEIgJqIAEoAgggAmsiAiAAKAKsASAMayIMIAIgDEkbIgIQh4CAgAAaIAEgASgCBCACajYCBEEAIQwgAEEAIAAoAqgBIAJqIgIgAiAAKAKsASILRhs2AqgBIAIgC0cNESAAQQE2AgACQCAHQaiIgIAAQQYQhICAgABFDQBBBSEMDBILIAZBAkEAEI2AgIAAIAAoALgBRw0QQQYhDCAGLQAADREgACAALQC3ASICNgIgIAJBBEsNEUEBIAJ0QRNxRQ0RCyABKAIEIgwgASgCCCINRg0OAkAgASgCACIKIAxqLQAAIgsNACAAIAw2AhAgASAMQQFqNgIEQQYhAgwMC0EAIQIgAEEANgKoASAAQQI2AgAgACALQQJ0QQRqIgs2AqwBIAAgCzYCQAsgByACaiAKIAxqIA0gDGsiDCALIAJrIgIgDCACSRsiAhCHgICAABogASABKAIEIAJqNgIEQQAhDCAAQQAgACgCqAEgAmoiAiACIAAoAqwBIgtGGzYCqAEgAiALRw0PIAAgAkF8aiICNgKsAUEHIQwgByACQQAQjYCAgAAgByAAKAKsASICaigAAEcNDyAAQQI2AqgBIAAtALEBIgtBP3ENDAJAAkAgC0HAAHFFDQAgACAHIAggAhCRgICAAEEBRw0RIAAgACkDCDcDMCAAKAKsASECIAAtALEBIQsMAQsgAEJ/NwMwC0J/IQ4CQCALwEF/Sg0AIAAgByAIIAIQkYCAgABBAUcNECAAKAKsASECIAApAwghDgsgACAONwM4IAIgACgCqAEiC2tBAkkNDyAAIAtBAWoiCjYCqAEgCCALakEI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AA8LIAEgA0EBaiIFNgIEAkAgASgCACADai0AACAAKQMYIAAoAgQiA62Ip0H/AXFGDQBBBw8LIAAgA0EIaiIGNgIEIAUhAyAGIAJJDQALIABBADYCBCAAQgA3AxhBAQtvAQF/QQchAQJAIABBugFqLwAAQdm0AUcNACAAQbQBakEGQQAQjYCAgAAgAEGwAWooAABHDQAgAEGAAWopAwBCAoggADUAtAFSDQAgAEG4AWotAAANAEEBQQcgACgCICAAQbkBai0AAEYbIQELIAELwAIBA38CQAJAAkAgACgCJA0AIABBADoAKCAAQQA2AgBBASECDAELAkAgACgCAEEKRw0AQQAhAwwCC0ECIQMMAQtBASEDCwJAAkADQAJAAkACQAJAIAMOAwABAwMLIAEoAgQiAyABKAIIIgRGDQQgASgCACEFAkADQCAFIANqLQAADQEgASADQQFqIgM2AgQgACAAKAIEQQFqQQNxNgIEIAQgA0YNBgwACwsCQCAAKAIERQ0AQQcPCyAAKAIkRQ0BIABBADoAKCAAQQA2AgBBASEDDAMLIABCADcDGCAAQQA2AgQgAEHIAGpBAEHkABCGgICAABogAEGsAWpBDDYCAAtBAiEDDAELIAAgARCQgICAACIDQQFHDQIgAEEKNgIAQQAhAwwACwsCQCACDQBBAA8LQQdBASAAKAIEGyEDCyADC3UBAX8CQEG4CRCAgICAACICRQ0AIAIgADYCJCACIAAgARCbgICAACIANgKwCQJAIABFDQAgAkEAOgAoIAJCADcDACACQgA3AxggAkHIAGpBAEHkABCGgICAABogAkGsAWpBDDYCACACDwsgAhCCgICAAAtBAAseAAJAIABFDQAgACgCsAkQnYCAgAAgABCCgICAAAsL3RABCn8gAEHo3QFqIQIgAEHUAGohAyAAQRxqIgRBCGohBQJAAkADQCAAKAJAIQYCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgASgCBCIHIAEoAghJDQAgBkEHRg0BDBELIAYOCQECAwQFBgcACQ4LIAAoAkwhBgwHC0EBIQYgASAHQQFqNgIEIAEoAgAgB2otAAAiB0UNCAJAAkAgB0HfAUsNACAHQQFHDQELIABBgAI7AVACQCAAKAI8DQAgACABKAIMIAEoAhAiBmo2AhggACABKAIUIAZr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".replace("data:application/wasm;base64,",""),t=atob(A),r=t.length,e=new Uint8Array(r);for(let A=0;A<r;A++)e[A]=t.charCodeAt(A);const v=await WebAssembly.instantiate(e.buffer,{});ZA=v.instance;}()));const t=new XA(ZA),r=[];let e=0,v=!1;try{for(;;){if(t.mem32[2]===t.mem32[3])if(e<A.length){const r=Math.min(t.bufSize,A.length-e);t.supplyInput(A.subarray(e,e+r)),e+=r;}else {if(v)throw new Error("XZ decompression error: unexpected end of input");t.supplyInput(At),v=!0;}const n=t.getNextOutput();if(n.outChunk.length>0&&r.push(n.outChunk),t.mem32[5]=0,n.finished)break}if(1===r.length)return r[0];const n=r.reduce((A,t)=>A+t.length,0),j=new Uint8Array(n);let f=0;for(const A of r)j.set(A,f),f+=A.length;return j}finally{t.dispose();}}(t);else if("rans"===A)e=await function(A){return aA(A,"rans_uncompress",(t,r,e)=>t._rans_uncompress(r,A.length,e),!0)}(t);else if("rans4x16"===A)e=await function(A){return aA(A,"rans_uncompress_4x16",(t,r,e)=>t._rans_uncompress_4x16(r,A.length,e))}(t);else if("arith"===A)e=await function(A){return aA(A,"arith_uncompress",(t,r,e)=>t._arith_uncompress(r,A.length,e))}(t);else if("fqzcomp"===A)e=await async function(A){const t=await oA(),r=t._malloc(4);try{return await aA(A,"fqz_decompress",(t,e,v)=>t._fqz_decompress(e,A.length,v,r))}finally{t._free(r);}}(t);else {if("tok3"!==A)throw new vA(`${A} decompression not yet implemented`);e=await function(A){return aA(A,"tok3_decode_names",(t,r,e)=>t._tok3_decode_names(r,A.length,e))}(t);}var v,n;if(e.length!==r)throw new nA(`${A} decompression produced ${e.length} bytes, expected ${r}`);return e}async readBlock(A){const{majorVersion:t}=await this.getDefinition(),{cramBlockHeader:r,cramBlockCrc32:e}=await this._getSectionParsers(),v=m(await this.file.read(r.maxLength,A),r.parser,0,A),n=v._size+v.compressedSize+(t>=3?e.maxLength:0),j=await this.file.read(n,A);return this.readBlockFromBuffer(j,0,A)}async readBlockFromBuffer(A,t,r){const{majorVersion:e}=await this.getDefinition(),v=await this._getSectionParsers(),{cramBlockHeader:n}=v,j=m(A.subarray(t,t+n.maxLength),n.parser,0,r),f=j._endPosition,s=t+j._size,b=A.subarray(s,s+j.compressedSize),i=0===j.uncompressedSize?new Uint8Array(0):"raw"!==j.compressionMethod?await this._uncompress(j.compressionMethod,b,j.uncompressedSize):b,o={...j,_endPosition:f,contentPosition:f,content:i};if(e>=3){const r=s+j.compressedSize,e=m(A.subarray(r,r+v.cramBlockCrc32.maxLength),v.cramBlockCrc32.parser,0,f+j.compressedSize);if(o.crc32=e.crc32,this.validateChecksums){const r=A.subarray(t,t+j._size+j.compressedSize),v=rA(r)>>>0;if(v!==e.crc32)throw new nA(`crc mismatch in block data: recorded CRC32 = ${e.crc32}, but calculated CRC32 = ${v}`)}o._endPosition=e._endPosition,o._size=o.compressedSize+v.cramBlockCrc32.maxLength;}else o._endPosition=f+o.compressedSize,o._size=o.compressedSize;return o}}function et(A,t){const[r,e,v,n,j,f]=t,s=r;A[s]||(A[s]=[]),A[s].push({start:e,span:v,containerStart:n,sliceStart:j,sliceBytes:f});}class vt{parseIndexP;filehandle;constructor(A){this.filehandle=CA(A.url,A.path,A.filehandle);}async parseIndex(){const A={},t=await async function(A){return 31===A[0]&&139===A[1]?EA(A):A}(await this.filehandle.readFile()),r=new DataView(t.buffer,t.byteOffset,t.byteLength);if(t.length>4&&21578050===r.getUint32(0,!0))throw new nA("invalid .crai index file. note: file appears to be a .bai index. this is technically legal but please open a github issue if you need support");let e=[],v="";for(const r of t)if(r>=48&&r<=57||!v&&45===r)v+=String.fromCharCode(r);else if(9===r)e.push(Number.parseInt(v,10)),v="";else if(10===r)e.push(Number.parseInt(v,10)),v="",et(A,e),e=[];else if(13!==r&&32!==r)throw new nA("invalid .crai index file");v&&e.push(Number.parseInt(v,10)),6===e.length&&et(A,e);for(const t of Object.values(A))t?.sort((A,t)=>A.start-t.start||A.span-t.span);return A}getIndex(){return this.parseIndexP||(this.parseIndexP=this.parseIndex().catch(A=>{throw this.parseIndexP=void 0,A})),this.parseIndexP}async hasDataForReferenceSequence(A){return !!(await this.getIndex())[A]}async getEntriesForRange(A,t,r){const e=(await this.getIndex())[A];return e?e.filter(A=>A.start<=r&&A.start+A.span>t):[]}}function nt(A){const t=A.readName;if(void 0===t)throw new Error("readName undefined");return t}class jt{cram;index;constructor(A){this.cram=A.cram??new rt({url:A.cramUrl,path:A.cramPath,filehandle:A.cramFilehandle,seqFetch:A.seqFetch,checkSequenceMD5:A.checkSequenceMD5,validateChecksums:A.validateChecksums,cacheSize:A.cacheSize}),this.index=A.index;}async getRecordsForRange(A,t,r,e={}){const v=e.viewAsPairs??!1,n=e.pairAcrossChr??!1,j=e.maxInsertSize??2e5,f=e.onProgress,s={decodeTags:e.decodeTags},b=A,i=await this.index.getEntriesForRange(b,t,r);let o=0;for(const A of i)o+=A.sliceBytes;let a=0;f?.(0,o);let g=(await Promise.all(i.map(e=>this.getRecordsInSlice(e,e=>e.sequenceId===A&&(void 0===e.lengthOnRef?e.alignmentStart>=t&&e.alignmentStart<=r:e.alignmentStart<=r&&e.alignmentStart+e.lengthOnRef-1>t),s).then(A=>(a+=e.sliceBytes,f?.(a,o),A))))).flat();if(v){const A={},t=new Set;for(const r of g){const e=nt(r);A[e]=(A[e]??0)+1,t.add(r.uniqueId);}const r=new Set(Object.keys(A).filter(t=>1===A[t])),e=[];for(const A of g){const t=nt(A);r.has(t)&&A.mate&&(A.mate.sequenceId===b||n)&&Math.abs(A.alignmentStart-A.mate.alignmentStart)<j&&e.push(this.index.getEntriesForRange(A.mate.sequenceId,A.mate.alignmentStart,A.mate.alignmentStart+1));}const v=await Promise.all(e),f=new Map;for(const A of v.flat())f.set(`${A.containerStart}:${A.sliceStart}:${A.sliceBytes}`,A);const s=[...f.values()].map(A=>this.getRecordsInSlice(A,()=>!0).then(A=>{const e=[];for(const v of A){const A=nt(v);r.has(A)&&!t.has(v.uniqueId)&&e.push(v);}return e})),i=await Promise.all(s);g=g.concat(i.flat());}return g}getRecordsInSlice({containerStart:A,sliceStart:t,sliceBytes:r},e,v){return this.cram.getContainerAtPosition(A).getSlice(t,r).getRecords(e,v)}hasDataForReferenceSequence(A){return this.index.hasDataForReferenceSequence(A)}}})(),gmodCRAM=e;})();
52558
+ var gmodCRAM$1 = gmodCRAM;
52060
52559
 
52061
52560
  class FileHandler {
52062
52561
 
@@ -52174,7 +52673,7 @@
52174
52673
  this.browser = browser;
52175
52674
  this.genome = genome;
52176
52675
 
52177
- this.cramFile = new gmodCRAM.CramFile({
52676
+ this.cramFile = new gmodCRAM$1.CramFile({
52178
52677
  filehandle: config.fileHandle ? config.fileHandle : new FileHandler(config.url, config),
52179
52678
  //url: config.url,
52180
52679
  seqFetch: config.seqFetch || seqFetch.bind(this),
@@ -52182,9 +52681,9 @@
52182
52681
  });
52183
52682
 
52184
52683
  const indexFileHandle = config.indexFileHandle ? config.indexFileHandle : new FileHandler(config.indexURL, config);
52185
- this.indexedCramFile = new gmodCRAM.IndexedCramFile({
52684
+ this.indexedCramFile = new gmodCRAM$1.IndexedCramFile({
52186
52685
  cram: this.cramFile,
52187
- index: new gmodCRAM.CraiIndex({
52686
+ index: new gmodCRAM$1.CraiIndex({
52188
52687
  //url: config.indexURL
52189
52688
  filehandle: indexFileHandle
52190
52689
  }),
@@ -52309,6 +52808,9 @@
52309
52808
 
52310
52809
  const alignment = decodeCramRecord(record, header.chrNames);
52311
52810
 
52811
+ // Convert qual to regular array -- this was a breaking change somewhere between 5.X and 8.3.0
52812
+ if(alignment.qual) alignment.qual = Array.from(alignment.qual);
52813
+
52312
52814
  if (this.filter.pass(alignment)) {
52313
52815
  alignmentContainer.push(alignment);
52314
52816
  }
@@ -76662,6 +77164,9 @@ ${indent}columns: ${matrix.columns}
76662
77164
  indexURL: r.getAttribute("index"),
76663
77165
  order: idx
76664
77166
  };
77167
+ if (r.hasAttribute("format")) {
77168
+ config.format = r.getAttribute("format");
77169
+ }
76665
77170
  resourceMap.set(config.url, config);
76666
77171
  if (!hasTrackElements) {
76667
77172
  tracks.push(config);
@@ -76749,6 +77254,13 @@ ${indent}columns: ${matrix.columns}
76749
77254
 
76750
77255
  config.name = track.getAttribute("name");
76751
77256
 
77257
+ if(track.hasAttribute("type")) {
77258
+ config.type = track.getAttribute("type");
77259
+ }
77260
+ if(track.hasAttribute("format")) {
77261
+ config.format = track.getAttribute("format");
77262
+ }
77263
+
76752
77264
  const color = track.getAttribute("color");
76753
77265
  if (color) {
76754
77266
  config.color = "rgb(" + color + ")";
@@ -77060,7 +77572,7 @@ ${indent}columns: ${matrix.columns}
77060
77572
  })
77061
77573
  }
77062
77574
 
77063
- const _version = "3.8.1";
77575
+ const _version = "3.8.3";
77064
77576
  function version() {
77065
77577
  return _version
77066
77578
  }