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/README.md +10 -10
- package/dist/igv.d.ts +7 -2
- package/dist/igv.esm.js +777 -265
- package/dist/igv.esm.min.js +9 -9
- package/dist/igv.esm.min.js.map +1 -1
- package/dist/igv.js +777 -265
- package/dist/igv.min.js +9 -9
- package/dist/igv.min.js.map +1 -1
- package/package.json +2 -2
package/dist/igv.esm.js
CHANGED
|
@@ -10606,7 +10606,7 @@ function didSelectSingleTrackType(types) {
|
|
|
10606
10606
|
return 1 === unique.length
|
|
10607
10607
|
}
|
|
10608
10608
|
|
|
10609
|
-
/*! @license DOMPurify 3.4.
|
|
10609
|
+
/*! @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 */
|
|
10610
10610
|
|
|
10611
10611
|
function _arrayLikeToArray(r, a) {
|
|
10612
10612
|
(null == a || a > r.length) && (a = r.length);
|
|
@@ -10935,8 +10935,14 @@ const ATTR_WHITESPACE = seal(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205
|
|
|
10935
10935
|
);
|
|
10936
10936
|
const DOCTYPE_NAME = seal(/^html$/i);
|
|
10937
10937
|
const CUSTOM_ELEMENT = seal(/^[a-z][.\w]*(-[.\w]+)+$/i);
|
|
10938
|
+
// Markup-significant character probes used by _sanitizeElements.
|
|
10939
|
+
// Shared module-level instances are safe despite the sticky /g flags:
|
|
10940
|
+
// unapply() resets lastIndex for RegExp receivers before every call.
|
|
10941
|
+
const ELEMENT_MARKUP_PROBE = seal(/<[/\w!]/g);
|
|
10942
|
+
const COMMENT_MARKUP_PROBE = seal(/<[/\w]/g);
|
|
10943
|
+
const FALLBACK_TAG_CLOSE = seal(/<\/no(script|embed|frames)/i);
|
|
10944
|
+
const SELF_CLOSING_TAG = seal(/\/>/i);
|
|
10938
10945
|
|
|
10939
|
-
/* eslint-disable @typescript-eslint/indent */
|
|
10940
10946
|
// https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType
|
|
10941
10947
|
const NODE_TYPE = {
|
|
10942
10948
|
element: 1,
|
|
@@ -10947,7 +10953,7 @@ const NODE_TYPE = {
|
|
|
10947
10953
|
// Deprecated
|
|
10948
10954
|
entityNode: 6,
|
|
10949
10955
|
// Deprecated
|
|
10950
|
-
|
|
10956
|
+
processingInstruction: 7,
|
|
10951
10957
|
comment: 8,
|
|
10952
10958
|
document: 9,
|
|
10953
10959
|
documentType: 10,
|
|
@@ -11008,10 +11014,25 @@ const _createHooksMap = function _createHooksMap() {
|
|
|
11008
11014
|
uponSanitizeShadowNode: []
|
|
11009
11015
|
};
|
|
11010
11016
|
};
|
|
11017
|
+
/**
|
|
11018
|
+
* Resolve a set-valued configuration option: a fresh set built from
|
|
11019
|
+
* cfg[key] when it is an own array property (seeded with a clone of
|
|
11020
|
+
* options.base when given, case-normalized via options.transform),
|
|
11021
|
+
* the fallback set otherwise.
|
|
11022
|
+
*
|
|
11023
|
+
* @param cfg the cloned, prototype-free configuration object
|
|
11024
|
+
* @param key the configuration property to read
|
|
11025
|
+
* @param fallback the set to use when the option is absent or not an array
|
|
11026
|
+
* @param options transform and optional base set to merge into
|
|
11027
|
+
* @returns the resolved set
|
|
11028
|
+
*/
|
|
11029
|
+
const _resolveSetOption = function _resolveSetOption(cfg, key, fallback, options) {
|
|
11030
|
+
return objectHasOwnProperty(cfg, key) && arrayIsArray(cfg[key]) ? addToSet(options.base ? clone(options.base) : {}, cfg[key], options.transform) : fallback;
|
|
11031
|
+
};
|
|
11011
11032
|
function createDOMPurify() {
|
|
11012
11033
|
let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();
|
|
11013
11034
|
const DOMPurify = root => createDOMPurify(root);
|
|
11014
|
-
DOMPurify.version = '3.4.
|
|
11035
|
+
DOMPurify.version = '3.4.11';
|
|
11015
11036
|
DOMPurify.removed = [];
|
|
11016
11037
|
if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {
|
|
11017
11038
|
// Not running in a browser, provide a factory function
|
|
@@ -11056,6 +11077,54 @@ function createDOMPurify() {
|
|
|
11056
11077
|
}
|
|
11057
11078
|
let trustedTypesPolicy;
|
|
11058
11079
|
let emptyHTML = '';
|
|
11080
|
+
// The instance's own internal Trusted Types policy. Unlike a caller-supplied
|
|
11081
|
+
// `TRUSTED_TYPES_POLICY`, this is created at most once — Trusted Types throws
|
|
11082
|
+
// on duplicate policy names — and is the only policy allowed to persist
|
|
11083
|
+
// across configurations and survive `clearConfig()`.
|
|
11084
|
+
let defaultTrustedTypesPolicy;
|
|
11085
|
+
let defaultTrustedTypesPolicyResolved = false;
|
|
11086
|
+
// Tracks whether we are already inside a call to the configured Trusted Types
|
|
11087
|
+
// policy (`createHTML` or `createScriptURL`). If a supplied policy callback
|
|
11088
|
+
// itself calls `DOMPurify.sanitize` (the cause of #1422), `sanitize` would
|
|
11089
|
+
// re-enter the policy and recurse until the stack overflows. We detect that
|
|
11090
|
+
// re-entry and throw a clear, actionable error instead. The guard is shared
|
|
11091
|
+
// across both callbacks, because either one re-entering `sanitize` triggers
|
|
11092
|
+
// the same unbounded recursion.
|
|
11093
|
+
let IN_TRUSTED_TYPES_POLICY = 0;
|
|
11094
|
+
const _assertNotInTrustedTypesPolicy = function _assertNotInTrustedTypesPolicy() {
|
|
11095
|
+
if (IN_TRUSTED_TYPES_POLICY > 0) {
|
|
11096
|
+
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.');
|
|
11097
|
+
}
|
|
11098
|
+
};
|
|
11099
|
+
const _createTrustedHTML = function _createTrustedHTML(html) {
|
|
11100
|
+
_assertNotInTrustedTypesPolicy();
|
|
11101
|
+
IN_TRUSTED_TYPES_POLICY++;
|
|
11102
|
+
try {
|
|
11103
|
+
return trustedTypesPolicy.createHTML(html);
|
|
11104
|
+
} finally {
|
|
11105
|
+
IN_TRUSTED_TYPES_POLICY--;
|
|
11106
|
+
}
|
|
11107
|
+
};
|
|
11108
|
+
const _createTrustedScriptURL = function _createTrustedScriptURL(scriptUrl) {
|
|
11109
|
+
_assertNotInTrustedTypesPolicy();
|
|
11110
|
+
IN_TRUSTED_TYPES_POLICY++;
|
|
11111
|
+
try {
|
|
11112
|
+
return trustedTypesPolicy.createScriptURL(scriptUrl);
|
|
11113
|
+
} finally {
|
|
11114
|
+
IN_TRUSTED_TYPES_POLICY--;
|
|
11115
|
+
}
|
|
11116
|
+
};
|
|
11117
|
+
// Lazily resolve (and cache) the instance's internal default policy.
|
|
11118
|
+
// Resolution is attempted at most once: a successful `createPolicy` cannot be
|
|
11119
|
+
// repeated (Trusted Types throws on duplicate names), and a failed or
|
|
11120
|
+
// unsupported attempt must not be retried on every parse.
|
|
11121
|
+
const _getDefaultTrustedTypesPolicy = function _getDefaultTrustedTypesPolicy() {
|
|
11122
|
+
if (!defaultTrustedTypesPolicyResolved) {
|
|
11123
|
+
defaultTrustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);
|
|
11124
|
+
defaultTrustedTypesPolicyResolved = true;
|
|
11125
|
+
}
|
|
11126
|
+
return defaultTrustedTypesPolicy;
|
|
11127
|
+
};
|
|
11059
11128
|
const _document = document,
|
|
11060
11129
|
implementation = _document.implementation,
|
|
11061
11130
|
createNodeIterator = _document.createNodeIterator,
|
|
@@ -11152,6 +11221,13 @@ function createDOMPurify() {
|
|
|
11152
11221
|
let WHOLE_DOCUMENT = false;
|
|
11153
11222
|
/* Track whether config is already set on this instance of DOMPurify. */
|
|
11154
11223
|
let SET_CONFIG = false;
|
|
11224
|
+
/* Pristine allowlist bindings captured at setConfig() time. On the
|
|
11225
|
+
* persistent-config path sanitize() restores the sets from these before
|
|
11226
|
+
* the per-walk hook clone-guard, so a hook's in-call widening cannot
|
|
11227
|
+
* carry across calls. Null until setConfig() is called; reset by
|
|
11228
|
+
* clearConfig(). */
|
|
11229
|
+
let SET_CONFIG_ALLOWED_TAGS = null;
|
|
11230
|
+
let SET_CONFIG_ALLOWED_ATTR = null;
|
|
11155
11231
|
/* Decide if all elements (e.g. style, script) must be children of
|
|
11156
11232
|
* document.body. By default, browsers might move them to document.head */
|
|
11157
11233
|
let FORCE_BODY = false;
|
|
@@ -11194,7 +11270,17 @@ function createDOMPurify() {
|
|
|
11194
11270
|
let USE_PROFILES = {};
|
|
11195
11271
|
/* Tags to ignore content of when KEEP_CONTENT is true */
|
|
11196
11272
|
let FORBID_CONTENTS = null;
|
|
11197
|
-
const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script',
|
|
11273
|
+
const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script',
|
|
11274
|
+
// <selectedcontent> mirrors the selected <option>'s subtree, cloned by
|
|
11275
|
+
// the UA (customizable <select>) — including any on* handlers — and the
|
|
11276
|
+
// engine re-mirrors synchronously whenever a removal changes which
|
|
11277
|
+
// option/selectedcontent is current, even inside DOMPurify's inert
|
|
11278
|
+
// DOMParser document. Hoisting its children on removal re-inserts a fresh
|
|
11279
|
+
// mirror target ahead of the walk, which the engine refills, looping
|
|
11280
|
+
// forever (DoS) and amplifying output. Dropping its content on removal
|
|
11281
|
+
// (rather than hoisting) breaks that cascade; the content is a duplicate
|
|
11282
|
+
// of the option, which is sanitized on its own. See campaign-3 F1/F6.
|
|
11283
|
+
'selectedcontent', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);
|
|
11198
11284
|
/* Tags that are safe for data: URIs */
|
|
11199
11285
|
let DATA_URI_TAGS = null;
|
|
11200
11286
|
const DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);
|
|
@@ -11210,8 +11296,10 @@ function createDOMPurify() {
|
|
|
11210
11296
|
/* Allowed XHTML+XML namespaces */
|
|
11211
11297
|
let ALLOWED_NAMESPACES = null;
|
|
11212
11298
|
const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);
|
|
11213
|
-
|
|
11214
|
-
let
|
|
11299
|
+
const DEFAULT_MATHML_TEXT_INTEGRATION_POINTS = freeze(['mi', 'mo', 'mn', 'ms', 'mtext']);
|
|
11300
|
+
let MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, DEFAULT_MATHML_TEXT_INTEGRATION_POINTS);
|
|
11301
|
+
const DEFAULT_HTML_INTEGRATION_POINTS = freeze(['annotation-xml']);
|
|
11302
|
+
let HTML_INTEGRATION_POINTS = addToSet({}, DEFAULT_HTML_INTEGRATION_POINTS);
|
|
11215
11303
|
// Certain elements are allowed in both SVG and HTML
|
|
11216
11304
|
// namespace. We need to specify them explicitly
|
|
11217
11305
|
// so that they don't get erroneously deleted from
|
|
@@ -11253,14 +11341,32 @@ function createDOMPurify() {
|
|
|
11253
11341
|
// HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.
|
|
11254
11342
|
transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;
|
|
11255
11343
|
/* Set configuration parameters */
|
|
11256
|
-
ALLOWED_TAGS =
|
|
11257
|
-
|
|
11258
|
-
|
|
11259
|
-
|
|
11260
|
-
|
|
11261
|
-
|
|
11262
|
-
|
|
11263
|
-
|
|
11344
|
+
ALLOWED_TAGS = _resolveSetOption(cfg, 'ALLOWED_TAGS', DEFAULT_ALLOWED_TAGS, {
|
|
11345
|
+
transform: transformCaseFunc
|
|
11346
|
+
});
|
|
11347
|
+
ALLOWED_ATTR = _resolveSetOption(cfg, 'ALLOWED_ATTR', DEFAULT_ALLOWED_ATTR, {
|
|
11348
|
+
transform: transformCaseFunc
|
|
11349
|
+
});
|
|
11350
|
+
ALLOWED_NAMESPACES = _resolveSetOption(cfg, 'ALLOWED_NAMESPACES', DEFAULT_ALLOWED_NAMESPACES, {
|
|
11351
|
+
transform: stringToString
|
|
11352
|
+
});
|
|
11353
|
+
URI_SAFE_ATTRIBUTES = _resolveSetOption(cfg, 'ADD_URI_SAFE_ATTR', DEFAULT_URI_SAFE_ATTRIBUTES, {
|
|
11354
|
+
transform: transformCaseFunc,
|
|
11355
|
+
base: DEFAULT_URI_SAFE_ATTRIBUTES
|
|
11356
|
+
});
|
|
11357
|
+
DATA_URI_TAGS = _resolveSetOption(cfg, 'ADD_DATA_URI_TAGS', DEFAULT_DATA_URI_TAGS, {
|
|
11358
|
+
transform: transformCaseFunc,
|
|
11359
|
+
base: DEFAULT_DATA_URI_TAGS
|
|
11360
|
+
});
|
|
11361
|
+
FORBID_CONTENTS = _resolveSetOption(cfg, 'FORBID_CONTENTS', DEFAULT_FORBID_CONTENTS, {
|
|
11362
|
+
transform: transformCaseFunc
|
|
11363
|
+
});
|
|
11364
|
+
FORBID_TAGS = _resolveSetOption(cfg, 'FORBID_TAGS', clone({}), {
|
|
11365
|
+
transform: transformCaseFunc
|
|
11366
|
+
});
|
|
11367
|
+
FORBID_ATTR = _resolveSetOption(cfg, 'FORBID_ATTR', clone({}), {
|
|
11368
|
+
transform: transformCaseFunc
|
|
11369
|
+
});
|
|
11264
11370
|
USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES') ? cfg.USE_PROFILES && typeof cfg.USE_PROFILES === 'object' ? clone(cfg.USE_PROFILES) : cfg.USE_PROFILES : false;
|
|
11265
11371
|
ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true
|
|
11266
11372
|
ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true
|
|
@@ -11279,8 +11385,8 @@ function createDOMPurify() {
|
|
|
11279
11385
|
IN_PLACE = cfg.IN_PLACE || false; // Default false
|
|
11280
11386
|
IS_ALLOWED_URI$1 = isRegex(cfg.ALLOWED_URI_REGEXP) ? cfg.ALLOWED_URI_REGEXP : IS_ALLOWED_URI; // Default regexp
|
|
11281
11387
|
NAMESPACE = typeof cfg.NAMESPACE === 'string' ? cfg.NAMESPACE : HTML_NAMESPACE; // Default HTML namespace
|
|
11282
|
-
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({},
|
|
11283
|
-
HTML_INTEGRATION_POINTS = objectHasOwnProperty(cfg, 'HTML_INTEGRATION_POINTS') && cfg.HTML_INTEGRATION_POINTS && typeof cfg.HTML_INTEGRATION_POINTS === 'object' ? clone(cfg.HTML_INTEGRATION_POINTS) : addToSet({},
|
|
11388
|
+
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
|
|
11389
|
+
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
|
|
11284
11390
|
const customElementHandling = objectHasOwnProperty(cfg, 'CUSTOM_ELEMENT_HANDLING') && cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING === 'object' ? clone(cfg.CUSTOM_ELEMENT_HANDLING) : create(null);
|
|
11285
11391
|
CUSTOM_ELEMENT_HANDLING = create(null);
|
|
11286
11392
|
if (objectHasOwnProperty(customElementHandling, 'tagNameCheck') && isRegexOrFunction(customElementHandling.tagNameCheck)) {
|
|
@@ -11292,6 +11398,7 @@ function createDOMPurify() {
|
|
|
11292
11398
|
if (objectHasOwnProperty(customElementHandling, 'allowCustomizedBuiltInElements') && typeof customElementHandling.allowCustomizedBuiltInElements === 'boolean') {
|
|
11293
11399
|
CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = customElementHandling.allowCustomizedBuiltInElements; // Default undefined
|
|
11294
11400
|
}
|
|
11401
|
+
seal(CUSTOM_ELEMENT_HANDLING);
|
|
11295
11402
|
if (SAFE_FOR_TEMPLATES) {
|
|
11296
11403
|
ALLOW_DATA_ATTR = false;
|
|
11297
11404
|
}
|
|
@@ -11375,6 +11482,13 @@ function createDOMPurify() {
|
|
|
11375
11482
|
addToSet(ALLOWED_TAGS, ['tbody']);
|
|
11376
11483
|
delete FORBID_TAGS.tbody;
|
|
11377
11484
|
}
|
|
11485
|
+
// Re-derive the active Trusted Types policy from this configuration on
|
|
11486
|
+
// every parse. The active policy must never be sticky closure state that
|
|
11487
|
+
// outlives the config that set it: a caller-supplied policy left in place
|
|
11488
|
+
// after `clearConfig()` — or after a later call that supplied none, or
|
|
11489
|
+
// `TRUSTED_TYPES_POLICY: null` — could sign a subsequent "default"
|
|
11490
|
+
// `RETURN_TRUSTED_TYPE` result with a foreign, possibly unsafe policy.
|
|
11491
|
+
// See GHSA-vxr8-fq34-vvx9.
|
|
11378
11492
|
if (cfg.TRUSTED_TYPES_POLICY) {
|
|
11379
11493
|
if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {
|
|
11380
11494
|
throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');
|
|
@@ -11382,35 +11496,47 @@ function createDOMPurify() {
|
|
|
11382
11496
|
if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {
|
|
11383
11497
|
throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');
|
|
11384
11498
|
}
|
|
11385
|
-
//
|
|
11499
|
+
// A caller-supplied policy applies to this configuration only.
|
|
11500
|
+
const previousTrustedTypesPolicy = trustedTypesPolicy;
|
|
11386
11501
|
trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;
|
|
11387
|
-
// Sign local variables required by `sanitize`.
|
|
11388
|
-
|
|
11502
|
+
// Sign local variables required by `sanitize`. If the supplied policy's
|
|
11503
|
+
// `createHTML` is circular (i.e. it calls `DOMPurify.sanitize`), this
|
|
11504
|
+
// throws via the re-entrancy guard. Restore the previous policy first so
|
|
11505
|
+
// the instance is not left in a poisoned state. See #1422.
|
|
11506
|
+
try {
|
|
11507
|
+
emptyHTML = _createTrustedHTML('');
|
|
11508
|
+
} catch (error) {
|
|
11509
|
+
trustedTypesPolicy = previousTrustedTypesPolicy;
|
|
11510
|
+
throw error;
|
|
11511
|
+
}
|
|
11512
|
+
} else if (cfg.TRUSTED_TYPES_POLICY === null) {
|
|
11513
|
+
// Explicit opt-out for this call: perform no Trusted Types signing and
|
|
11514
|
+
// create nothing (so a strict `trusted-types` CSP that disallows a
|
|
11515
|
+
// `dompurify` policy can still call `sanitize` from inside its own
|
|
11516
|
+
// policy — see #1422). Resetting to `undefined` rather than a sticky
|
|
11517
|
+
// `null` also drops any previously retained caller policy, so it cannot
|
|
11518
|
+
// resurface on a later call, while still allowing the next config-less
|
|
11519
|
+
// call to restore the internal default policy. See GHSA-vxr8-fq34-vvx9.
|
|
11520
|
+
trustedTypesPolicy = undefined;
|
|
11521
|
+
emptyHTML = '';
|
|
11389
11522
|
} else {
|
|
11390
|
-
//
|
|
11523
|
+
// No policy supplied: keep the currently active policy if one is set — a
|
|
11524
|
+
// previously supplied policy is intentionally sticky across config-less
|
|
11525
|
+
// calls — otherwise fall back to the instance's own internal policy,
|
|
11526
|
+
// created at most once. (A policy supplied for a *single* call still
|
|
11527
|
+
// lingers by design; what must not linger is a policy whose configuration
|
|
11528
|
+
// has been torn down via `clearConfig()`, which restores the default.)
|
|
11391
11529
|
if (trustedTypesPolicy === undefined) {
|
|
11392
|
-
trustedTypesPolicy =
|
|
11530
|
+
trustedTypesPolicy = _getDefaultTrustedTypesPolicy();
|
|
11393
11531
|
}
|
|
11394
|
-
//
|
|
11395
|
-
|
|
11396
|
-
|
|
11532
|
+
// Sign internal variables only when a policy is active. A falsy policy
|
|
11533
|
+
// (Trusted Types unsupported, creation failed, or an explicit opt-out)
|
|
11534
|
+
// leaves `emptyHTML` as a plain string, so we never call `.createHTML` on
|
|
11535
|
+
// a non-policy and throw. See #1422.
|
|
11536
|
+
if (trustedTypesPolicy && typeof emptyHTML === 'string') {
|
|
11537
|
+
emptyHTML = _createTrustedHTML('');
|
|
11397
11538
|
}
|
|
11398
11539
|
}
|
|
11399
|
-
/*
|
|
11400
|
-
* Mirror the clone-before-mutate pattern already applied above for
|
|
11401
|
-
* cfg.ADD_TAGS / cfg.ADD_ATTR: if any uponSanitize* hook is
|
|
11402
|
-
* registered AND the set still points at the default constant,
|
|
11403
|
-
* clone it. The hook then mutates the clone (in-call widening
|
|
11404
|
-
* still works exactly as documented) and the next default-cfg
|
|
11405
|
-
* call rebinds to the untouched original via the reassignment at
|
|
11406
|
-
* the top of this function.
|
|
11407
|
-
*/
|
|
11408
|
-
if ((hooks.uponSanitizeElement.length > 0 || hooks.uponSanitizeAttribute.length > 0) && ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {
|
|
11409
|
-
ALLOWED_TAGS = clone(ALLOWED_TAGS);
|
|
11410
|
-
}
|
|
11411
|
-
if (hooks.uponSanitizeAttribute.length > 0 && ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {
|
|
11412
|
-
ALLOWED_ATTR = clone(ALLOWED_ATTR);
|
|
11413
|
-
}
|
|
11414
11540
|
// Prevent further manipulation of configuration.
|
|
11415
11541
|
// Not available in IE8, Safari 5, etc.
|
|
11416
11542
|
if (freeze) {
|
|
@@ -11423,6 +11549,77 @@ function createDOMPurify() {
|
|
|
11423
11549
|
* correctly. */
|
|
11424
11550
|
const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]);
|
|
11425
11551
|
const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);
|
|
11552
|
+
/**
|
|
11553
|
+
* Namespace rules for an element in the SVG namespace.
|
|
11554
|
+
*
|
|
11555
|
+
* @param tagName the element's lowercase tag name
|
|
11556
|
+
* @param parent the (possibly simulated) parent node
|
|
11557
|
+
* @param parentTagName the parent's lowercase tag name
|
|
11558
|
+
* @returns true if a spec-compliant parser could produce this element
|
|
11559
|
+
*/
|
|
11560
|
+
const _checkSvgNamespace = function _checkSvgNamespace(tagName, parent, parentTagName) {
|
|
11561
|
+
// The only way to switch from HTML namespace to SVG
|
|
11562
|
+
// is via <svg>. If it happens via any other tag, then
|
|
11563
|
+
// it should be killed.
|
|
11564
|
+
if (parent.namespaceURI === HTML_NAMESPACE) {
|
|
11565
|
+
return tagName === 'svg';
|
|
11566
|
+
}
|
|
11567
|
+
// The only way to switch from MathML to SVG is via <svg>
|
|
11568
|
+
// if the parent is either <annotation-xml> or a MathML
|
|
11569
|
+
// text integration point.
|
|
11570
|
+
if (parent.namespaceURI === MATHML_NAMESPACE) {
|
|
11571
|
+
return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);
|
|
11572
|
+
}
|
|
11573
|
+
// We only allow elements that are defined in SVG
|
|
11574
|
+
// spec. All others are disallowed in SVG namespace.
|
|
11575
|
+
return Boolean(ALL_SVG_TAGS[tagName]);
|
|
11576
|
+
};
|
|
11577
|
+
/**
|
|
11578
|
+
* Namespace rules for an element in the MathML namespace.
|
|
11579
|
+
*
|
|
11580
|
+
* @param tagName the element's lowercase tag name
|
|
11581
|
+
* @param parent the (possibly simulated) parent node
|
|
11582
|
+
* @param parentTagName the parent's lowercase tag name
|
|
11583
|
+
* @returns true if a spec-compliant parser could produce this element
|
|
11584
|
+
*/
|
|
11585
|
+
const _checkMathMlNamespace = function _checkMathMlNamespace(tagName, parent, parentTagName) {
|
|
11586
|
+
// The only way to switch from HTML namespace to MathML
|
|
11587
|
+
// is via <math>. If it happens via any other tag, then
|
|
11588
|
+
// it should be killed.
|
|
11589
|
+
if (parent.namespaceURI === HTML_NAMESPACE) {
|
|
11590
|
+
return tagName === 'math';
|
|
11591
|
+
}
|
|
11592
|
+
// The only way to switch from SVG to MathML is via
|
|
11593
|
+
// <math> and HTML integration points
|
|
11594
|
+
if (parent.namespaceURI === SVG_NAMESPACE) {
|
|
11595
|
+
return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];
|
|
11596
|
+
}
|
|
11597
|
+
// We only allow elements that are defined in MathML
|
|
11598
|
+
// spec. All others are disallowed in MathML namespace.
|
|
11599
|
+
return Boolean(ALL_MATHML_TAGS[tagName]);
|
|
11600
|
+
};
|
|
11601
|
+
/**
|
|
11602
|
+
* Namespace rules for an element in the HTML namespace.
|
|
11603
|
+
*
|
|
11604
|
+
* @param tagName the element's lowercase tag name
|
|
11605
|
+
* @param parent the (possibly simulated) parent node
|
|
11606
|
+
* @param parentTagName the parent's lowercase tag name
|
|
11607
|
+
* @returns true if a spec-compliant parser could produce this element
|
|
11608
|
+
*/
|
|
11609
|
+
const _checkHtmlNamespace = function _checkHtmlNamespace(tagName, parent, parentTagName) {
|
|
11610
|
+
// The only way to switch from SVG to HTML is via
|
|
11611
|
+
// HTML integration points, and from MathML to HTML
|
|
11612
|
+
// is via MathML text integration points
|
|
11613
|
+
if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {
|
|
11614
|
+
return false;
|
|
11615
|
+
}
|
|
11616
|
+
if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {
|
|
11617
|
+
return false;
|
|
11618
|
+
}
|
|
11619
|
+
// We disallow tags that are specific for MathML
|
|
11620
|
+
// or SVG and should never appear in HTML namespace
|
|
11621
|
+
return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);
|
|
11622
|
+
};
|
|
11426
11623
|
/**
|
|
11427
11624
|
* @param element a DOM element whose namespace is being checked
|
|
11428
11625
|
* @returns Return false if the element has a
|
|
@@ -11445,51 +11642,13 @@ function createDOMPurify() {
|
|
|
11445
11642
|
return false;
|
|
11446
11643
|
}
|
|
11447
11644
|
if (element.namespaceURI === SVG_NAMESPACE) {
|
|
11448
|
-
|
|
11449
|
-
// is via <svg>. If it happens via any other tag, then
|
|
11450
|
-
// it should be killed.
|
|
11451
|
-
if (parent.namespaceURI === HTML_NAMESPACE) {
|
|
11452
|
-
return tagName === 'svg';
|
|
11453
|
-
}
|
|
11454
|
-
// The only way to switch from MathML to SVG is via`
|
|
11455
|
-
// svg if parent is either <annotation-xml> or MathML
|
|
11456
|
-
// text integration points.
|
|
11457
|
-
if (parent.namespaceURI === MATHML_NAMESPACE) {
|
|
11458
|
-
return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);
|
|
11459
|
-
}
|
|
11460
|
-
// We only allow elements that are defined in SVG
|
|
11461
|
-
// spec. All others are disallowed in SVG namespace.
|
|
11462
|
-
return Boolean(ALL_SVG_TAGS[tagName]);
|
|
11645
|
+
return _checkSvgNamespace(tagName, parent, parentTagName);
|
|
11463
11646
|
}
|
|
11464
11647
|
if (element.namespaceURI === MATHML_NAMESPACE) {
|
|
11465
|
-
|
|
11466
|
-
// is via <math>. If it happens via any other tag, then
|
|
11467
|
-
// it should be killed.
|
|
11468
|
-
if (parent.namespaceURI === HTML_NAMESPACE) {
|
|
11469
|
-
return tagName === 'math';
|
|
11470
|
-
}
|
|
11471
|
-
// The only way to switch from SVG to MathML is via
|
|
11472
|
-
// <math> and HTML integration points
|
|
11473
|
-
if (parent.namespaceURI === SVG_NAMESPACE) {
|
|
11474
|
-
return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];
|
|
11475
|
-
}
|
|
11476
|
-
// We only allow elements that are defined in MathML
|
|
11477
|
-
// spec. All others are disallowed in MathML namespace.
|
|
11478
|
-
return Boolean(ALL_MATHML_TAGS[tagName]);
|
|
11648
|
+
return _checkMathMlNamespace(tagName, parent, parentTagName);
|
|
11479
11649
|
}
|
|
11480
11650
|
if (element.namespaceURI === HTML_NAMESPACE) {
|
|
11481
|
-
|
|
11482
|
-
// HTML integration points, and from MathML to HTML
|
|
11483
|
-
// is via MathML text integration points
|
|
11484
|
-
if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {
|
|
11485
|
-
return false;
|
|
11486
|
-
}
|
|
11487
|
-
if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {
|
|
11488
|
-
return false;
|
|
11489
|
-
}
|
|
11490
|
-
// We disallow tags that are specific for MathML
|
|
11491
|
-
// or SVG and should never appear in HTML namespace
|
|
11492
|
-
return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);
|
|
11651
|
+
return _checkHtmlNamespace(tagName, parent, parentTagName);
|
|
11493
11652
|
}
|
|
11494
11653
|
// For XHTML and XML documents that support custom namespaces
|
|
11495
11654
|
if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {
|
|
@@ -11514,7 +11673,74 @@ function createDOMPurify() {
|
|
|
11514
11673
|
// eslint-disable-next-line unicorn/prefer-dom-node-remove
|
|
11515
11674
|
getParentNode(node).removeChild(node);
|
|
11516
11675
|
} catch (_) {
|
|
11676
|
+
/* The normal detach failed — this is reached for a parentless node
|
|
11677
|
+
(getParentNode() is null, so .removeChild throws). Element.prototype
|
|
11678
|
+
.remove() is itself a spec no-op on a parentless node, so a recorded
|
|
11679
|
+
"removal" would otherwise hand the caller back an intact,
|
|
11680
|
+
payload-bearing node (e.g. a detached IN_PLACE root the mXSS canary or
|
|
11681
|
+
the style-with-element-child rule decided to kill). Fail closed by
|
|
11682
|
+
throwing — exactly as a clobbered root does at the IN_PLACE entry —
|
|
11683
|
+
rather than trying to "neutralize" the node via its own methods.
|
|
11684
|
+
Neutralizing would mean calling getAttributeNames()/removeAttribute()
|
|
11685
|
+
on the node, both of which a <form> root can clobber via a named child
|
|
11686
|
+
(and _isClobbered does not even probe getAttributeNames), so the
|
|
11687
|
+
neutralize step could itself be silently defeated, leaving the payload
|
|
11688
|
+
intact. A throw touches only the cached, clobber-safe remove() and
|
|
11689
|
+
getParentNode(). Generalizes GHSA-r47g-fvhr-h676 (clobbered-form root)
|
|
11690
|
+
to every root-kill reason. REPORT-3.
|
|
11691
|
+
This lives inside the catch, so it never fires for a normally-removed
|
|
11692
|
+
in-tree node: those have a parent, removeChild() succeeds, and the
|
|
11693
|
+
catch is not entered. Only a kept (parentless) root reaches here. */
|
|
11517
11694
|
remove(node);
|
|
11695
|
+
if (!getParentNode(node)) {
|
|
11696
|
+
throw typeErrorCreate('a node selected for removal could not be detached from its tree ' + 'and cannot be safely returned; refusing to sanitize in place');
|
|
11697
|
+
}
|
|
11698
|
+
}
|
|
11699
|
+
};
|
|
11700
|
+
/**
|
|
11701
|
+
* _neutralizeRoot
|
|
11702
|
+
*
|
|
11703
|
+
* Fail-closed teardown of an in-place root after the sanitize walk aborts
|
|
11704
|
+
* (campaign-3 F2). An internal throw mid-walk — e.g. a page-registered
|
|
11705
|
+
* custom element's reaction detaches a node so `_forceRemove`'s deliberate
|
|
11706
|
+
* parentless guard throws, or any other re-entrant engine mutation — would
|
|
11707
|
+
* otherwise leave the caller's *live* tree half-sanitized, with everything
|
|
11708
|
+
* after the abort point still carrying its handlers. There is no safe way
|
|
11709
|
+
* to resume the walk (the tree mutated under us), so we strip the root bare:
|
|
11710
|
+
* remove every child and every attribute, then let the caller's catch see
|
|
11711
|
+
* the original error. Clobber-safe (cached `remove`/`childNodes`/`attributes`
|
|
11712
|
+
* getters; the root was already clobber-pre-flighted at the IN_PLACE entry).
|
|
11713
|
+
*
|
|
11714
|
+
* @param root the in-place root to empty
|
|
11715
|
+
*/
|
|
11716
|
+
const _neutralizeRoot = function _neutralizeRoot(root) {
|
|
11717
|
+
const childNodes = getChildNodes(root);
|
|
11718
|
+
if (childNodes) {
|
|
11719
|
+
const snapshot = [];
|
|
11720
|
+
arrayForEach(childNodes, child => {
|
|
11721
|
+
arrayPush(snapshot, child);
|
|
11722
|
+
});
|
|
11723
|
+
arrayForEach(snapshot, child => {
|
|
11724
|
+
try {
|
|
11725
|
+
remove(child);
|
|
11726
|
+
} catch (_) {
|
|
11727
|
+
/* Best-effort teardown; a still-attached child is handled below */
|
|
11728
|
+
}
|
|
11729
|
+
});
|
|
11730
|
+
}
|
|
11731
|
+
const attributes = getAttributes(root);
|
|
11732
|
+
if (attributes) {
|
|
11733
|
+
for (let i = attributes.length - 1; i >= 0; --i) {
|
|
11734
|
+
const attribute = attributes[i];
|
|
11735
|
+
const name = attribute && attribute.name;
|
|
11736
|
+
if (typeof name === 'string') {
|
|
11737
|
+
try {
|
|
11738
|
+
root.removeAttribute(name);
|
|
11739
|
+
} catch (_) {
|
|
11740
|
+
/* Clobbered removeAttribute — ignore (fail-closed best effort) */
|
|
11741
|
+
}
|
|
11742
|
+
}
|
|
11743
|
+
}
|
|
11518
11744
|
}
|
|
11519
11745
|
};
|
|
11520
11746
|
/**
|
|
@@ -11549,6 +11775,72 @@ function createDOMPurify() {
|
|
|
11549
11775
|
}
|
|
11550
11776
|
}
|
|
11551
11777
|
};
|
|
11778
|
+
/**
|
|
11779
|
+
* _stripDisallowedAttributes
|
|
11780
|
+
*
|
|
11781
|
+
* Removes every attribute the active configuration does not allow from a
|
|
11782
|
+
* single element, using the same allowlist as the main attribute pass (so
|
|
11783
|
+
* `on*` handlers go, but no `/^on/` blocklist is introduced). Used only to
|
|
11784
|
+
* neutralise nodes that are being discarded from an in-place tree.
|
|
11785
|
+
*
|
|
11786
|
+
* @param element the element to strip
|
|
11787
|
+
*/
|
|
11788
|
+
const _stripDisallowedAttributes = function _stripDisallowedAttributes(element) {
|
|
11789
|
+
const attributes = getAttributes(element);
|
|
11790
|
+
if (!attributes) {
|
|
11791
|
+
return;
|
|
11792
|
+
}
|
|
11793
|
+
for (let i = attributes.length - 1; i >= 0; --i) {
|
|
11794
|
+
const attribute = attributes[i];
|
|
11795
|
+
const name = attribute && attribute.name;
|
|
11796
|
+
if (typeof name !== 'string' || ALLOWED_ATTR[transformCaseFunc(name)]) {
|
|
11797
|
+
continue;
|
|
11798
|
+
}
|
|
11799
|
+
try {
|
|
11800
|
+
element.removeAttribute(name);
|
|
11801
|
+
} catch (_) {
|
|
11802
|
+
/* Clobbered removeAttribute on a doomed node — ignore */
|
|
11803
|
+
}
|
|
11804
|
+
}
|
|
11805
|
+
};
|
|
11806
|
+
/**
|
|
11807
|
+
* _neutralizeSubtree
|
|
11808
|
+
*
|
|
11809
|
+
* Completes the audit-5 F1 fix across every removal path. The KEEP_CONTENT
|
|
11810
|
+
* move-hoist neutralises only disallowed-tag removals; clobber, mXSS-canary,
|
|
11811
|
+
* namespace, comment, processing-instruction and KEEP_CONTENT:false removals
|
|
11812
|
+
* all drop their subtree wholesale via `_forceRemove`. On the IN_PLACE path
|
|
11813
|
+
* those dropped nodes are detached from the caller's LIVE tree but a
|
|
11814
|
+
* handler-bearing original among them (an `<img onerror>`/`<video>` that was
|
|
11815
|
+
* loading) keeps its queued resource event, which fires in page scope after
|
|
11816
|
+
* sanitize returns. This walks a removed subtree and strips every attribute
|
|
11817
|
+
* the active configuration does not allow — so `on*` handlers are cancelled
|
|
11818
|
+
* through the SAME allowlist that governs kept nodes, not a separate `/^on/`
|
|
11819
|
+
* blocklist. Run synchronously before sanitize returns, i.e. before any
|
|
11820
|
+
* queued event can fire. Hook-free by design: these nodes leave the output,
|
|
11821
|
+
* so firing attribute hooks for them would be surprising. Clobber-safe reads;
|
|
11822
|
+
* a doomed clobbered node may shadow `removeAttribute` (its own attributes are
|
|
11823
|
+
* irrelevant — it is discarded — while its non-clobbered descendants, e.g.
|
|
11824
|
+
* the `<img>`, are reached and scrubbed).
|
|
11825
|
+
*
|
|
11826
|
+
* @param root the root of a removed subtree to neutralise
|
|
11827
|
+
*/
|
|
11828
|
+
const _neutralizeSubtree = function _neutralizeSubtree(root) {
|
|
11829
|
+
const stack = [root];
|
|
11830
|
+
while (stack.length > 0) {
|
|
11831
|
+
const node = stack.pop();
|
|
11832
|
+
const nodeType = getNodeType ? getNodeType(node) : node.nodeType;
|
|
11833
|
+
if (nodeType === NODE_TYPE.element) {
|
|
11834
|
+
_stripDisallowedAttributes(node);
|
|
11835
|
+
}
|
|
11836
|
+
const childNodes = getChildNodes(node);
|
|
11837
|
+
if (childNodes) {
|
|
11838
|
+
for (let i = childNodes.length - 1; i >= 0; --i) {
|
|
11839
|
+
stack.push(childNodes[i]);
|
|
11840
|
+
}
|
|
11841
|
+
}
|
|
11842
|
+
}
|
|
11843
|
+
};
|
|
11552
11844
|
/**
|
|
11553
11845
|
* _initDocument
|
|
11554
11846
|
*
|
|
@@ -11570,7 +11862,7 @@ function createDOMPurify() {
|
|
|
11570
11862
|
// Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)
|
|
11571
11863
|
dirty = '<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>' + dirty + '</body></html>';
|
|
11572
11864
|
}
|
|
11573
|
-
const dirtyPayload = trustedTypesPolicy ?
|
|
11865
|
+
const dirtyPayload = trustedTypesPolicy ? _createTrustedHTML(dirty) : dirty;
|
|
11574
11866
|
/*
|
|
11575
11867
|
* Use the DOMParser API by default, fallback later if needs be
|
|
11576
11868
|
* DOMParser not work for svg when has multiple root element.
|
|
@@ -11610,6 +11902,20 @@ function createDOMPurify() {
|
|
|
11610
11902
|
// eslint-disable-next-line no-bitwise
|
|
11611
11903
|
NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);
|
|
11612
11904
|
};
|
|
11905
|
+
/**
|
|
11906
|
+
* Replace template expression syntax (mustache, ERB, template
|
|
11907
|
+
* literal) with a space; shared by all SAFE_FOR_TEMPLATES scrub
|
|
11908
|
+
* sites. Order matters: mustache, then ERB, then template literal.
|
|
11909
|
+
*
|
|
11910
|
+
* @param value the string to scrub
|
|
11911
|
+
* @returns the scrubbed string
|
|
11912
|
+
*/
|
|
11913
|
+
const _stripTemplateExpressions = function _stripTemplateExpressions(value) {
|
|
11914
|
+
value = stringReplace(value, MUSTACHE_EXPR$1, ' ');
|
|
11915
|
+
value = stringReplace(value, ERB_EXPR$1, ' ');
|
|
11916
|
+
value = stringReplace(value, TMPLIT_EXPR$1, ' ');
|
|
11917
|
+
return value;
|
|
11918
|
+
};
|
|
11613
11919
|
/**
|
|
11614
11920
|
* Strip template-engine expressions ({{...}}, ${...}, <%...%>) from the
|
|
11615
11921
|
* character data of an element subtree. Used as the final safety net for
|
|
@@ -11629,20 +11935,28 @@ function createDOMPurify() {
|
|
|
11629
11935
|
*
|
|
11630
11936
|
* @param node The root element whose character data should be scrubbed.
|
|
11631
11937
|
*/
|
|
11632
|
-
const
|
|
11938
|
+
const _scrubTemplateExpressions2 = function _scrubTemplateExpressions(node) {
|
|
11939
|
+
var _node$querySelectorAl;
|
|
11633
11940
|
node.normalize();
|
|
11634
11941
|
const walker = createNodeIterator.call(node.ownerDocument || node, node,
|
|
11635
11942
|
// eslint-disable-next-line no-bitwise
|
|
11636
11943
|
NodeFilter.SHOW_TEXT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_CDATA_SECTION | NodeFilter.SHOW_PROCESSING_INSTRUCTION, null);
|
|
11637
11944
|
let currentNode = walker.nextNode();
|
|
11638
11945
|
while (currentNode) {
|
|
11639
|
-
|
|
11640
|
-
arrayForEach([MUSTACHE_EXPR$1, ERB_EXPR$1, TMPLIT_EXPR$1], expr => {
|
|
11641
|
-
data = stringReplace(data, expr, ' ');
|
|
11642
|
-
});
|
|
11643
|
-
currentNode.data = data;
|
|
11946
|
+
currentNode.data = _stripTemplateExpressions(currentNode.data);
|
|
11644
11947
|
currentNode = walker.nextNode();
|
|
11645
11948
|
}
|
|
11949
|
+
// NodeIterator does not descend into <template>.content per the DOM spec,
|
|
11950
|
+
// so we must explicitly recurse into each template's content fragment,
|
|
11951
|
+
// mirroring the approach used by _sanitizeShadowDOM.
|
|
11952
|
+
const templates = (_node$querySelectorAl = node.querySelectorAll) === null || _node$querySelectorAl === void 0 ? void 0 : _node$querySelectorAl.call(node, 'template');
|
|
11953
|
+
if (templates) {
|
|
11954
|
+
arrayForEach(templates, tmpl => {
|
|
11955
|
+
if (_isDocumentFragment(tmpl.content)) {
|
|
11956
|
+
_scrubTemplateExpressions2(tmpl.content);
|
|
11957
|
+
}
|
|
11958
|
+
});
|
|
11959
|
+
}
|
|
11646
11960
|
};
|
|
11647
11961
|
/**
|
|
11648
11962
|
* _isClobbered
|
|
@@ -11738,67 +12052,64 @@ function createDOMPurify() {
|
|
|
11738
12052
|
}
|
|
11739
12053
|
};
|
|
11740
12054
|
function _executeHooks(hooks, currentNode, data) {
|
|
12055
|
+
if (hooks.length === 0) {
|
|
12056
|
+
return;
|
|
12057
|
+
}
|
|
11741
12058
|
arrayForEach(hooks, hook => {
|
|
11742
12059
|
hook.call(DOMPurify, currentNode, data, CONFIG);
|
|
11743
12060
|
});
|
|
11744
12061
|
}
|
|
11745
12062
|
/**
|
|
11746
|
-
*
|
|
12063
|
+
* Structural-threat checks that condemn a node regardless of the
|
|
12064
|
+
* allowlists: mXSS via namespace confusion, risky CSS construction,
|
|
12065
|
+
* processing instructions, markup-bearing comments. Pure predicate;
|
|
12066
|
+
* the caller removes. Check order is load-bearing.
|
|
11747
12067
|
*
|
|
11748
|
-
* @
|
|
11749
|
-
* @
|
|
11750
|
-
* @
|
|
11751
|
-
* @param currentNode to check for permission to exist
|
|
11752
|
-
* @return true if node was killed, false if left alive
|
|
12068
|
+
* @param currentNode the node to inspect
|
|
12069
|
+
* @param tagName the node's transformCaseFunc'd tag name
|
|
12070
|
+
* @return true if the node must be removed
|
|
11753
12071
|
*/
|
|
11754
|
-
const
|
|
11755
|
-
let content = null;
|
|
11756
|
-
/* Execute a hook if present */
|
|
11757
|
-
_executeHooks(hooks.beforeSanitizeElements, currentNode, null);
|
|
11758
|
-
/* Check if element is clobbered or can clobber */
|
|
11759
|
-
if (_isClobbered(currentNode)) {
|
|
11760
|
-
_forceRemove(currentNode);
|
|
11761
|
-
return true;
|
|
11762
|
-
}
|
|
11763
|
-
/* Now let's check the element's type and name */
|
|
11764
|
-
const tagName = transformCaseFunc(currentNode.nodeName);
|
|
11765
|
-
/* Execute a hook if present */
|
|
11766
|
-
_executeHooks(hooks.uponSanitizeElement, currentNode, {
|
|
11767
|
-
tagName,
|
|
11768
|
-
allowedTags: ALLOWED_TAGS
|
|
11769
|
-
});
|
|
12072
|
+
const _isUnsafeNode = function _isUnsafeNode(currentNode, tagName) {
|
|
11770
12073
|
/* Detect mXSS attempts abusing namespace confusion */
|
|
11771
|
-
if (SAFE_FOR_XML && currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(
|
|
11772
|
-
_forceRemove(currentNode);
|
|
12074
|
+
if (SAFE_FOR_XML && currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(ELEMENT_MARKUP_PROBE, currentNode.textContent) && regExpTest(ELEMENT_MARKUP_PROBE, currentNode.innerHTML)) {
|
|
11773
12075
|
return true;
|
|
11774
12076
|
}
|
|
11775
12077
|
/* Remove risky CSS construction leading to mXSS */
|
|
11776
12078
|
if (SAFE_FOR_XML && currentNode.namespaceURI === HTML_NAMESPACE && tagName === 'style' && _isNode(currentNode.firstElementChild)) {
|
|
11777
|
-
_forceRemove(currentNode);
|
|
11778
12079
|
return true;
|
|
11779
12080
|
}
|
|
11780
12081
|
/* Remove any occurrence of processing instructions */
|
|
11781
|
-
if (currentNode.nodeType === NODE_TYPE.
|
|
11782
|
-
_forceRemove(currentNode);
|
|
12082
|
+
if (currentNode.nodeType === NODE_TYPE.processingInstruction) {
|
|
11783
12083
|
return true;
|
|
11784
12084
|
}
|
|
11785
12085
|
/* Remove any kind of possibly harmful comments */
|
|
11786
|
-
if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(
|
|
11787
|
-
_forceRemove(currentNode);
|
|
12086
|
+
if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(COMMENT_MARKUP_PROBE, currentNode.data)) {
|
|
11788
12087
|
return true;
|
|
11789
12088
|
}
|
|
11790
|
-
|
|
11791
|
-
|
|
11792
|
-
|
|
11793
|
-
|
|
11794
|
-
|
|
11795
|
-
|
|
11796
|
-
|
|
11797
|
-
|
|
11798
|
-
|
|
11799
|
-
|
|
12089
|
+
return false;
|
|
12090
|
+
};
|
|
12091
|
+
/**
|
|
12092
|
+
* Handle a node whose tag is forbidden or not allowlisted: keep
|
|
12093
|
+
* allowed custom elements (false return exits _sanitizeElements
|
|
12094
|
+
* early - namespace/fallback checks and the afterSanitizeElements
|
|
12095
|
+
* hook are intentionally skipped for kept custom elements), else
|
|
12096
|
+
* hoist content per KEEP_CONTENT and remove.
|
|
12097
|
+
*
|
|
12098
|
+
* @param currentNode the disallowed node
|
|
12099
|
+
* @param tagName the node's transformCaseFunc'd tag name
|
|
12100
|
+
* @return true if the node was removed, false if kept
|
|
12101
|
+
*/
|
|
12102
|
+
const _sanitizeDisallowedNode = function _sanitizeDisallowedNode(currentNode, tagName) {
|
|
12103
|
+
/* Check if we have a custom element to handle */
|
|
12104
|
+
if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {
|
|
12105
|
+
if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {
|
|
12106
|
+
return false;
|
|
12107
|
+
}
|
|
12108
|
+
if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {
|
|
12109
|
+
return false;
|
|
11800
12110
|
}
|
|
11801
|
-
|
|
12111
|
+
}
|
|
12112
|
+
/* Keep content except for bad-listed elements.
|
|
11802
12113
|
Use the cached prototype getters exclusively — the previous code
|
|
11803
12114
|
had `|| currentNode.parentNode` / `|| currentNode.childNodes`
|
|
11804
12115
|
fallbacks, but the cached getters always return the canonical
|
|
@@ -11806,20 +12117,72 @@ function createDOMPurify() {
|
|
|
11806
12117
|
path was dead in safe cases and a clobbering surface in unsafe
|
|
11807
12118
|
ones. Falsy cached results stay falsy; the `if (childNodes &&
|
|
11808
12119
|
parentNode)` check already gates correctly. */
|
|
11809
|
-
|
|
11810
|
-
|
|
11811
|
-
|
|
11812
|
-
|
|
11813
|
-
|
|
11814
|
-
|
|
11815
|
-
|
|
11816
|
-
|
|
11817
|
-
|
|
12120
|
+
if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {
|
|
12121
|
+
const parentNode = getParentNode(currentNode);
|
|
12122
|
+
const childNodes = getChildNodes(currentNode);
|
|
12123
|
+
if (childNodes && parentNode) {
|
|
12124
|
+
const childCount = childNodes.length;
|
|
12125
|
+
/* In-place: hoist the *original* children so the iterator visits
|
|
12126
|
+
and sanitises them through the same allowlist pass as every other
|
|
12127
|
+
node. The caller built the tree in the live document, so the
|
|
12128
|
+
originals carry already-queued resource events (`<img onerror>`,
|
|
12129
|
+
`<video>`/`<audio>` error, lazy/`onload`, …); cloning would leave
|
|
12130
|
+
those originals detached but still armed, firing in page scope
|
|
12131
|
+
while the returned tree looked clean. Moving is safe in-place: the
|
|
12132
|
+
root is pre-validated as an allowed tag and so is never the node
|
|
12133
|
+
being removed, which keeps `parentNode` inside the iterator root
|
|
12134
|
+
and the relocated child inside the serialised tree.
|
|
12135
|
+
Otherwise (string / DOM-copy paths): clone. The iterator is rooted
|
|
12136
|
+
at — and the result serialised from — `body`, so a restrictive
|
|
12137
|
+
ALLOWED_TAGS that removes `body` itself must leave its content in
|
|
12138
|
+
place, which only cloning does; and those paths parse into an
|
|
12139
|
+
inert document, so their discarded originals never had a queued
|
|
12140
|
+
event to neutralise.
|
|
12141
|
+
`childNodes` is live; a tail-to-head walk keeps `childNodes[i]`
|
|
12142
|
+
valid whether we move (drops the trailing entry) or clone (leaves
|
|
12143
|
+
the list intact). */
|
|
12144
|
+
for (let i = childCount - 1; i >= 0; --i) {
|
|
12145
|
+
const hoisted = IN_PLACE ? childNodes[i] : cloneNode(childNodes[i], true);
|
|
12146
|
+
parentNode.insertBefore(hoisted, getNextSibling(currentNode));
|
|
11818
12147
|
}
|
|
11819
12148
|
}
|
|
12149
|
+
}
|
|
12150
|
+
_forceRemove(currentNode);
|
|
12151
|
+
return true;
|
|
12152
|
+
};
|
|
12153
|
+
/**
|
|
12154
|
+
* _sanitizeElements
|
|
12155
|
+
*
|
|
12156
|
+
* @protect nodeName
|
|
12157
|
+
* @protect textContent
|
|
12158
|
+
* @protect removeChild
|
|
12159
|
+
* @param currentNode to check for permission to exist
|
|
12160
|
+
* @return true if node was killed, false if left alive
|
|
12161
|
+
*/
|
|
12162
|
+
const _sanitizeElements = function _sanitizeElements(currentNode) {
|
|
12163
|
+
/* Execute a hook if present */
|
|
12164
|
+
_executeHooks(hooks.beforeSanitizeElements, currentNode, null);
|
|
12165
|
+
/* Check if element is clobbered or can clobber */
|
|
12166
|
+
if (_isClobbered(currentNode)) {
|
|
11820
12167
|
_forceRemove(currentNode);
|
|
11821
12168
|
return true;
|
|
11822
12169
|
}
|
|
12170
|
+
/* Now let's check the element's type and name */
|
|
12171
|
+
const tagName = transformCaseFunc(getNodeName ? getNodeName(currentNode) : currentNode.nodeName);
|
|
12172
|
+
/* Execute a hook if present */
|
|
12173
|
+
_executeHooks(hooks.uponSanitizeElement, currentNode, {
|
|
12174
|
+
tagName,
|
|
12175
|
+
allowedTags: ALLOWED_TAGS
|
|
12176
|
+
});
|
|
12177
|
+
/* Remove mXSS vectors, processing instructions and risky comments */
|
|
12178
|
+
if (_isUnsafeNode(currentNode, tagName)) {
|
|
12179
|
+
_forceRemove(currentNode);
|
|
12180
|
+
return true;
|
|
12181
|
+
}
|
|
12182
|
+
/* Remove element if anything forbids its presence */
|
|
12183
|
+
if (FORBID_TAGS[tagName] || !(EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function && EXTRA_ELEMENT_HANDLING.tagCheck(tagName)) && !ALLOWED_TAGS[tagName]) {
|
|
12184
|
+
return _sanitizeDisallowedNode(currentNode, tagName);
|
|
12185
|
+
}
|
|
11823
12186
|
/* Check whether element has a valid namespace.
|
|
11824
12187
|
Realm-safe check (GHSA-hpcv-96wg-7vj8): use the cached Node.prototype
|
|
11825
12188
|
nodeType getter rather than `instanceof Element`, which is realm-
|
|
@@ -11832,17 +12195,14 @@ function createDOMPurify() {
|
|
|
11832
12195
|
return true;
|
|
11833
12196
|
}
|
|
11834
12197
|
/* Make sure that older browsers don't get fallback-tag mXSS */
|
|
11835
|
-
if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(
|
|
12198
|
+
if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(FALLBACK_TAG_CLOSE, currentNode.innerHTML)) {
|
|
11836
12199
|
_forceRemove(currentNode);
|
|
11837
12200
|
return true;
|
|
11838
12201
|
}
|
|
11839
12202
|
/* Sanitize element content to be template-safe */
|
|
11840
12203
|
if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {
|
|
11841
12204
|
/* Get the element's text content */
|
|
11842
|
-
content = currentNode.textContent;
|
|
11843
|
-
arrayForEach([MUSTACHE_EXPR$1, ERB_EXPR$1, TMPLIT_EXPR$1], expr => {
|
|
11844
|
-
content = stringReplace(content, expr, ' ');
|
|
11845
|
-
});
|
|
12205
|
+
const content = _stripTemplateExpressions(currentNode.textContent);
|
|
11846
12206
|
if (currentNode.textContent !== content) {
|
|
11847
12207
|
arrayPush(DOMPurify.removed, {
|
|
11848
12208
|
element: currentNode.cloneNode()
|
|
@@ -11877,7 +12237,7 @@ function createDOMPurify() {
|
|
|
11877
12237
|
(https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)
|
|
11878
12238
|
XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)
|
|
11879
12239
|
We don't need to check the value; it's always URI safe. */
|
|
11880
|
-
if (ALLOW_DATA_ATTR &&
|
|
12240
|
+
if (ALLOW_DATA_ATTR && regExpTest(DATA_ATTR$1, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR$1, lcName)) ; else if (!nameIsPermitted) {
|
|
11881
12241
|
if (
|
|
11882
12242
|
// First condition does a very basic check if a) it's basically a valid custom element tagname AND
|
|
11883
12243
|
// b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
|
|
@@ -11909,6 +12269,63 @@ function createDOMPurify() {
|
|
|
11909
12269
|
const _isBasicCustomElement = function _isBasicCustomElement(tagName) {
|
|
11910
12270
|
return !RESERVED_CUSTOM_ELEMENT_NAMES[stringToLowerCase(tagName)] && regExpTest(CUSTOM_ELEMENT$1, tagName);
|
|
11911
12271
|
};
|
|
12272
|
+
/**
|
|
12273
|
+
* Wrap an attribute value in the matching Trusted Types object when
|
|
12274
|
+
* the active policy requires it. Namespaced attributes pass through
|
|
12275
|
+
* unchanged (no TT support yet, see
|
|
12276
|
+
* https://bugs.chromium.org/p/chromium/issues/detail?id=1305293).
|
|
12277
|
+
*
|
|
12278
|
+
* @param lcTag lowercase tag name of the containing element
|
|
12279
|
+
* @param lcName lowercase attribute name
|
|
12280
|
+
* @param namespaceURI the attribute's namespace, if any
|
|
12281
|
+
* @param value the attribute value to wrap
|
|
12282
|
+
* @return the value, wrapped when Trusted Types demand it
|
|
12283
|
+
*/
|
|
12284
|
+
const _applyTrustedTypesToAttribute = function _applyTrustedTypesToAttribute(lcTag, lcName, namespaceURI, value) {
|
|
12285
|
+
if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function' && !namespaceURI) {
|
|
12286
|
+
switch (trustedTypes.getAttributeType(lcTag, lcName)) {
|
|
12287
|
+
case 'TrustedHTML':
|
|
12288
|
+
{
|
|
12289
|
+
return _createTrustedHTML(value);
|
|
12290
|
+
}
|
|
12291
|
+
case 'TrustedScriptURL':
|
|
12292
|
+
{
|
|
12293
|
+
return _createTrustedScriptURL(value);
|
|
12294
|
+
}
|
|
12295
|
+
}
|
|
12296
|
+
}
|
|
12297
|
+
return value;
|
|
12298
|
+
};
|
|
12299
|
+
/**
|
|
12300
|
+
* Write a modified attribute value back onto the element. On
|
|
12301
|
+
* success, re-probe for clobbering introduced by the new value and
|
|
12302
|
+
* remove the element when found; otherwise pop the removal entry
|
|
12303
|
+
* recorded by the earlier _removeAttribute (long-standing pairing
|
|
12304
|
+
* with the SANITIZE_NAMED_PROPS path - do not "fix" casually). On
|
|
12305
|
+
* failure, remove the attribute instead.
|
|
12306
|
+
*
|
|
12307
|
+
* @param currentNode the element carrying the attribute
|
|
12308
|
+
* @param name the attribute name as present on the element
|
|
12309
|
+
* @param namespaceURI the attribute's namespace, if any
|
|
12310
|
+
* @param value the new attribute value
|
|
12311
|
+
*/
|
|
12312
|
+
const _setAttributeValue = function _setAttributeValue(currentNode, name, namespaceURI, value) {
|
|
12313
|
+
try {
|
|
12314
|
+
if (namespaceURI) {
|
|
12315
|
+
currentNode.setAttributeNS(namespaceURI, name, value);
|
|
12316
|
+
} else {
|
|
12317
|
+
/* Fallback to setAttribute() for browser-unrecognized namespaces e.g. "x-schema". */
|
|
12318
|
+
currentNode.setAttribute(name, value);
|
|
12319
|
+
}
|
|
12320
|
+
if (_isClobbered(currentNode)) {
|
|
12321
|
+
_forceRemove(currentNode);
|
|
12322
|
+
} else {
|
|
12323
|
+
arrayPop(DOMPurify.removed);
|
|
12324
|
+
}
|
|
12325
|
+
} catch (_) {
|
|
12326
|
+
_removeAttribute(name, currentNode);
|
|
12327
|
+
}
|
|
12328
|
+
};
|
|
11912
12329
|
/**
|
|
11913
12330
|
* _sanitizeAttributes
|
|
11914
12331
|
*
|
|
@@ -11935,6 +12352,7 @@ function createDOMPurify() {
|
|
|
11935
12352
|
forceKeepAttr: undefined
|
|
11936
12353
|
};
|
|
11937
12354
|
let l = attributes.length;
|
|
12355
|
+
const lcTag = transformCaseFunc(currentNode.nodeName);
|
|
11938
12356
|
/* Go backwards over all attributes; safely remove bad ones */
|
|
11939
12357
|
while (l--) {
|
|
11940
12358
|
const attr = attributes[l];
|
|
@@ -11972,7 +12390,7 @@ function createDOMPurify() {
|
|
|
11972
12390
|
_removeAttribute(name, currentNode);
|
|
11973
12391
|
continue;
|
|
11974
12392
|
}
|
|
11975
|
-
/* Did the hooks
|
|
12393
|
+
/* Did the hooks force-keep the attribute? */
|
|
11976
12394
|
if (hookEvent.forceKeepAttr) {
|
|
11977
12395
|
continue;
|
|
11978
12396
|
}
|
|
@@ -11982,56 +12400,24 @@ function createDOMPurify() {
|
|
|
11982
12400
|
continue;
|
|
11983
12401
|
}
|
|
11984
12402
|
/* Work around a security issue in jQuery 3.0 */
|
|
11985
|
-
if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(
|
|
12403
|
+
if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(SELF_CLOSING_TAG, value)) {
|
|
11986
12404
|
_removeAttribute(name, currentNode);
|
|
11987
12405
|
continue;
|
|
11988
12406
|
}
|
|
11989
12407
|
/* Sanitize attribute content to be template-safe */
|
|
11990
12408
|
if (SAFE_FOR_TEMPLATES) {
|
|
11991
|
-
|
|
11992
|
-
value = stringReplace(value, expr, ' ');
|
|
11993
|
-
});
|
|
12409
|
+
value = _stripTemplateExpressions(value);
|
|
11994
12410
|
}
|
|
11995
12411
|
/* Is `value` valid for this attribute? */
|
|
11996
|
-
const lcTag = transformCaseFunc(currentNode.nodeName);
|
|
11997
12412
|
if (!_isValidAttribute(lcTag, lcName, value)) {
|
|
11998
12413
|
_removeAttribute(name, currentNode);
|
|
11999
12414
|
continue;
|
|
12000
12415
|
}
|
|
12001
12416
|
/* Handle attributes that require Trusted Types */
|
|
12002
|
-
|
|
12003
|
-
if (namespaceURI) ; else {
|
|
12004
|
-
switch (trustedTypes.getAttributeType(lcTag, lcName)) {
|
|
12005
|
-
case 'TrustedHTML':
|
|
12006
|
-
{
|
|
12007
|
-
value = trustedTypesPolicy.createHTML(value);
|
|
12008
|
-
break;
|
|
12009
|
-
}
|
|
12010
|
-
case 'TrustedScriptURL':
|
|
12011
|
-
{
|
|
12012
|
-
value = trustedTypesPolicy.createScriptURL(value);
|
|
12013
|
-
break;
|
|
12014
|
-
}
|
|
12015
|
-
}
|
|
12016
|
-
}
|
|
12017
|
-
}
|
|
12417
|
+
value = _applyTrustedTypesToAttribute(lcTag, lcName, namespaceURI, value);
|
|
12018
12418
|
/* Handle invalid data-* attribute set by try-catching it */
|
|
12019
12419
|
if (value !== initValue) {
|
|
12020
|
-
|
|
12021
|
-
if (namespaceURI) {
|
|
12022
|
-
currentNode.setAttributeNS(namespaceURI, name, value);
|
|
12023
|
-
} else {
|
|
12024
|
-
/* Fallback to setAttribute() for browser-unrecognized namespaces e.g. "x-schema". */
|
|
12025
|
-
currentNode.setAttribute(name, value);
|
|
12026
|
-
}
|
|
12027
|
-
if (_isClobbered(currentNode)) {
|
|
12028
|
-
_forceRemove(currentNode);
|
|
12029
|
-
} else {
|
|
12030
|
-
arrayPop(DOMPurify.removed);
|
|
12031
|
-
}
|
|
12032
|
-
} catch (_) {
|
|
12033
|
-
_removeAttribute(name, currentNode);
|
|
12034
|
-
}
|
|
12420
|
+
_setAttributeValue(currentNode, name, namespaceURI, value);
|
|
12035
12421
|
}
|
|
12036
12422
|
}
|
|
12037
12423
|
/* Execute a hook if present */
|
|
@@ -12073,9 +12459,9 @@ function createDOMPurify() {
|
|
|
12073
12459
|
iterator also surfaces. */
|
|
12074
12460
|
const shadowNodeType = getNodeType ? getNodeType(shadowNode) : shadowNode.nodeType;
|
|
12075
12461
|
if (shadowNodeType === NODE_TYPE.element) {
|
|
12076
|
-
const innerSr = getShadowRoot
|
|
12462
|
+
const innerSr = getShadowRoot(shadowNode);
|
|
12077
12463
|
if (_isDocumentFragment(innerSr)) {
|
|
12078
|
-
|
|
12464
|
+
_sanitizeAttachedShadowRoots(innerSr);
|
|
12079
12465
|
_sanitizeShadowDOM2(innerSr);
|
|
12080
12466
|
}
|
|
12081
12467
|
}
|
|
@@ -12102,46 +12488,81 @@ function createDOMPurify() {
|
|
|
12102
12488
|
*
|
|
12103
12489
|
* @param root the subtree root to walk for attached shadow roots
|
|
12104
12490
|
*/
|
|
12105
|
-
const
|
|
12106
|
-
|
|
12107
|
-
|
|
12108
|
-
|
|
12109
|
-
|
|
12110
|
-
|
|
12111
|
-
|
|
12112
|
-
|
|
12113
|
-
|
|
12114
|
-
|
|
12115
|
-
|
|
12116
|
-
|
|
12117
|
-
|
|
12118
|
-
|
|
12119
|
-
|
|
12120
|
-
|
|
12491
|
+
const _sanitizeAttachedShadowRoots = function _sanitizeAttachedShadowRoots(root) {
|
|
12492
|
+
/* Iterative (explicit stack) rather than per-child recursion. DOM APIs
|
|
12493
|
+
impose no depth cap, so an attacker-shaped tree (JSON/CRDT/editor data
|
|
12494
|
+
built straight into the DOM — the IN_PLACE surface) deeper than the JS
|
|
12495
|
+
call-stack budget would otherwise overflow native recursion here and
|
|
12496
|
+
throw at the IN_PLACE entry pre-pass, before a single node is
|
|
12497
|
+
sanitized, leaving the caller's live tree untouched (fail-open). See
|
|
12498
|
+
campaign-3 F4. A heap stack keeps depth off the call stack.
|
|
12499
|
+
Each work item is either a node to descend into, or a deferred
|
|
12500
|
+
`_sanitizeShadowDOM` for an already-walked shadow root. The deferred
|
|
12501
|
+
form preserves the original post-order discipline: a shadow root's
|
|
12502
|
+
nested shadow roots are discovered before the outer shadow is
|
|
12503
|
+
sanitized (which may remove hosts). Pushes are in reverse of the
|
|
12504
|
+
desired processing order (LIFO): template content, then children, then
|
|
12505
|
+
the shadow-sanitize, then the shadow walk — so the order matches the
|
|
12506
|
+
previous recursion exactly. */
|
|
12507
|
+
const stack = [{
|
|
12508
|
+
node: root,
|
|
12509
|
+
shadow: null
|
|
12510
|
+
}];
|
|
12511
|
+
while (stack.length > 0) {
|
|
12512
|
+
const item = stack.pop();
|
|
12513
|
+
/* Deferred shadow-DOM sanitisation: runs after its subtree was walked. */
|
|
12514
|
+
if (item.shadow) {
|
|
12515
|
+
_sanitizeShadowDOM2(item.shadow);
|
|
12516
|
+
continue;
|
|
12121
12517
|
}
|
|
12122
|
-
|
|
12123
|
-
|
|
12124
|
-
|
|
12125
|
-
|
|
12126
|
-
|
|
12127
|
-
|
|
12128
|
-
|
|
12129
|
-
|
|
12130
|
-
|
|
12131
|
-
|
|
12132
|
-
|
|
12133
|
-
|
|
12134
|
-
|
|
12135
|
-
|
|
12136
|
-
|
|
12137
|
-
|
|
12138
|
-
|
|
12139
|
-
|
|
12140
|
-
|
|
12141
|
-
|
|
12142
|
-
|
|
12143
|
-
|
|
12144
|
-
|
|
12518
|
+
const node = item.node;
|
|
12519
|
+
const nodeType = getNodeType ? getNodeType(node) : node.nodeType;
|
|
12520
|
+
const isElement = nodeType === NODE_TYPE.element;
|
|
12521
|
+
/* (pushed last → processed first) Children, snapshotted in reverse so
|
|
12522
|
+
the first child is processed first. Snapshotting matters because a
|
|
12523
|
+
hook may detach siblings mid-walk. */
|
|
12524
|
+
const childNodes = getChildNodes(node);
|
|
12525
|
+
if (childNodes) {
|
|
12526
|
+
for (let i = childNodes.length - 1; i >= 0; --i) {
|
|
12527
|
+
stack.push({
|
|
12528
|
+
node: childNodes[i],
|
|
12529
|
+
shadow: null
|
|
12530
|
+
});
|
|
12531
|
+
}
|
|
12532
|
+
}
|
|
12533
|
+
/* (pushed before children → processed after them, matching the old
|
|
12534
|
+
"template content last" order) When the node is a <template>,
|
|
12535
|
+
descend into its content. */
|
|
12536
|
+
if (isElement) {
|
|
12537
|
+
const rootName = getNodeName ? getNodeName(node) : null;
|
|
12538
|
+
if (typeof rootName === 'string' && transformCaseFunc(rootName) === 'template') {
|
|
12539
|
+
const content = node.content;
|
|
12540
|
+
if (_isDocumentFragment(content)) {
|
|
12541
|
+
stack.push({
|
|
12542
|
+
node: content,
|
|
12543
|
+
shadow: null
|
|
12544
|
+
});
|
|
12545
|
+
}
|
|
12546
|
+
}
|
|
12547
|
+
}
|
|
12548
|
+
/* Shadow root (processed first): walk its subtree, then sanitise it.
|
|
12549
|
+
Realm-safe check (GHSA-hpcv-96wg-7vj8): nodeType-based detection
|
|
12550
|
+
rather than `instanceof DocumentFragment`, which is realm-bound and
|
|
12551
|
+
silently skipped foreign-realm shadow roots (e.g.
|
|
12552
|
+
iframe.contentDocument attachShadow). */
|
|
12553
|
+
if (isElement) {
|
|
12554
|
+
const sr = getShadowRoot(node);
|
|
12555
|
+
if (_isDocumentFragment(sr)) {
|
|
12556
|
+
/* Push the deferred sanitise first so it pops after the shadow
|
|
12557
|
+
walk we push next, i.e. nested shadow roots are discovered
|
|
12558
|
+
before this one is sanitised. */
|
|
12559
|
+
stack.push({
|
|
12560
|
+
node: null,
|
|
12561
|
+
shadow: sr
|
|
12562
|
+
}, {
|
|
12563
|
+
node: sr,
|
|
12564
|
+
shadow: null
|
|
12565
|
+
});
|
|
12145
12566
|
}
|
|
12146
12567
|
}
|
|
12147
12568
|
}
|
|
@@ -12172,16 +12593,41 @@ function createDOMPurify() {
|
|
|
12172
12593
|
return dirty;
|
|
12173
12594
|
}
|
|
12174
12595
|
/* Assign config vars */
|
|
12175
|
-
if (
|
|
12596
|
+
if (SET_CONFIG) {
|
|
12597
|
+
/* Persistent setConfig() path: _parseConfig is skipped, so the sets are
|
|
12598
|
+
* not re-derived per call. Restore them from the pristine bindings
|
|
12599
|
+
* captured at setConfig() time so a previous call's hook clone (mutated
|
|
12600
|
+
* below) does not carry over. */
|
|
12601
|
+
ALLOWED_TAGS = SET_CONFIG_ALLOWED_TAGS;
|
|
12602
|
+
ALLOWED_ATTR = SET_CONFIG_ALLOWED_ATTR;
|
|
12603
|
+
} else {
|
|
12176
12604
|
_parseConfig(cfg);
|
|
12177
12605
|
}
|
|
12606
|
+
/* Clone the hook-mutable allowlists before the walk whenever an
|
|
12607
|
+
* uponSanitize* hook is registered. The hook event exposes ALLOWED_TAGS
|
|
12608
|
+
* and ALLOWED_ATTR by reference (as allowedTags / allowedAttributes), so
|
|
12609
|
+
* a hook that widens them would otherwise mutate the shared set
|
|
12610
|
+
* permanently: across later calls and across every element. Cloning per
|
|
12611
|
+
* walk keeps documented in-call widening working while scoping it to the
|
|
12612
|
+
* call. A single guard for both config paths - the per-call path rebinds
|
|
12613
|
+
* the sets in _parseConfig each call, the persistent path restores them
|
|
12614
|
+
* from the captured bindings just above - so the two cannot diverge. */
|
|
12615
|
+
if (hooks.uponSanitizeElement.length > 0 || hooks.uponSanitizeAttribute.length > 0) {
|
|
12616
|
+
ALLOWED_TAGS = clone(ALLOWED_TAGS);
|
|
12617
|
+
}
|
|
12618
|
+
if (hooks.uponSanitizeAttribute.length > 0) {
|
|
12619
|
+
ALLOWED_ATTR = clone(ALLOWED_ATTR);
|
|
12620
|
+
}
|
|
12178
12621
|
/* Clean up removed elements */
|
|
12179
12622
|
DOMPurify.removed = [];
|
|
12180
|
-
/*
|
|
12181
|
-
|
|
12182
|
-
|
|
12183
|
-
|
|
12184
|
-
|
|
12623
|
+
/* Resolve IN_PLACE for this call without mutating persistent config.
|
|
12624
|
+
Writing the IN_PLACE closure variable here leaks under setConfig(),
|
|
12625
|
+
where _parseConfig is skipped on later calls: a single string call would
|
|
12626
|
+
disable in-place mode for every subsequent node call, returning a
|
|
12627
|
+
sanitized copy while leaving the caller's node — which in-place callers
|
|
12628
|
+
keep using and whose return value they ignore — unsanitized. REPORT-2. */
|
|
12629
|
+
const inPlace = IN_PLACE && typeof dirty !== 'string' && _isNode(dirty);
|
|
12630
|
+
if (inPlace) {
|
|
12185
12631
|
/* Do some early pre-sanitization to avoid unsafe root nodes.
|
|
12186
12632
|
Read nodeName through the cached prototype getter — a clobbering
|
|
12187
12633
|
child named "nodeName" on the form root would otherwise shadow
|
|
@@ -12208,8 +12654,16 @@ function createDOMPurify() {
|
|
|
12208
12654
|
throw typeErrorCreate('root node is clobbered and cannot be sanitized in-place');
|
|
12209
12655
|
}
|
|
12210
12656
|
/* Sanitize attached shadow roots before the main iterator runs.
|
|
12211
|
-
The iterator does not descend into shadow trees.
|
|
12212
|
-
|
|
12657
|
+
The iterator does not descend into shadow trees. Same fail-closed
|
|
12658
|
+
barrier as the main walk (campaign-3 F2): a custom-element reaction
|
|
12659
|
+
inside a shadow root could abort this pre-pass before the walk runs,
|
|
12660
|
+
which would otherwise leave the entire live tree unsanitized. */
|
|
12661
|
+
try {
|
|
12662
|
+
_sanitizeAttachedShadowRoots(dirty);
|
|
12663
|
+
} catch (error) {
|
|
12664
|
+
_neutralizeRoot(dirty);
|
|
12665
|
+
throw error;
|
|
12666
|
+
}
|
|
12213
12667
|
} else if (_isNode(dirty)) {
|
|
12214
12668
|
/* If dirty is a DOM element, append to an empty document to avoid
|
|
12215
12669
|
elements being stripped by the parser */
|
|
@@ -12229,13 +12683,13 @@ function createDOMPurify() {
|
|
|
12229
12683
|
descend into shadow trees. The walk routes every read through a
|
|
12230
12684
|
cached prototype getter so clobbering descendants on a form root
|
|
12231
12685
|
cannot hide a shadow host from this pass. */
|
|
12232
|
-
|
|
12686
|
+
_sanitizeAttachedShadowRoots(importedNode);
|
|
12233
12687
|
} else {
|
|
12234
12688
|
/* Exit directly if we have nothing to do */
|
|
12235
12689
|
if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&
|
|
12236
12690
|
// eslint-disable-next-line unicorn/prefer-includes
|
|
12237
12691
|
dirty.indexOf('<') === -1) {
|
|
12238
|
-
return trustedTypesPolicy && RETURN_TRUSTED_TYPE ?
|
|
12692
|
+
return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? _createTrustedHTML(dirty) : dirty;
|
|
12239
12693
|
}
|
|
12240
12694
|
/* Initialize the document to work on */
|
|
12241
12695
|
body = _initDocument(dirty);
|
|
@@ -12249,32 +12703,59 @@ function createDOMPurify() {
|
|
|
12249
12703
|
_forceRemove(body.firstChild);
|
|
12250
12704
|
}
|
|
12251
12705
|
/* Get node iterator */
|
|
12252
|
-
const nodeIterator = _createNodeIterator(
|
|
12253
|
-
/* Now start iterating over the created document
|
|
12254
|
-
|
|
12255
|
-
|
|
12256
|
-
|
|
12257
|
-
|
|
12258
|
-
|
|
12259
|
-
|
|
12260
|
-
|
|
12261
|
-
|
|
12262
|
-
|
|
12263
|
-
|
|
12264
|
-
|
|
12706
|
+
const nodeIterator = _createNodeIterator(inPlace ? dirty : body);
|
|
12707
|
+
/* Now start iterating over the created document.
|
|
12708
|
+
The walk runs inside an exception barrier (campaign-3 F2): a re-entrant
|
|
12709
|
+
engine/custom-element mutation can detach a node mid-walk so
|
|
12710
|
+
`_forceRemove`'s parentless guard throws, aborting the loop. Without the
|
|
12711
|
+
barrier the caller's in-place tree would be left half-sanitized with the
|
|
12712
|
+
unvisited tail still armed. On any throw we fail closed — strip the
|
|
12713
|
+
in-place root bare — then rethrow so the existing throw contract is
|
|
12714
|
+
preserved. (String/DOM-copy paths never return the partial body, so the
|
|
12715
|
+
propagating throw is already fail-closed there.) */
|
|
12716
|
+
try {
|
|
12717
|
+
while (currentNode = nodeIterator.nextNode()) {
|
|
12718
|
+
/* Sanitize tags and elements */
|
|
12719
|
+
_sanitizeElements(currentNode);
|
|
12720
|
+
/* Check attributes next */
|
|
12721
|
+
_sanitizeAttributes(currentNode);
|
|
12722
|
+
/* Shadow DOM detected, sanitize it.
|
|
12723
|
+
Realm-safe check (GHSA-hpcv-96wg-7vj8): nodeType-based detection
|
|
12724
|
+
instead of instanceof, so foreign-realm <template>.content is
|
|
12725
|
+
walked correctly. */
|
|
12726
|
+
if (_isDocumentFragment(currentNode.content)) {
|
|
12727
|
+
_sanitizeShadowDOM2(currentNode.content);
|
|
12728
|
+
}
|
|
12265
12729
|
}
|
|
12730
|
+
} catch (error) {
|
|
12731
|
+
if (inPlace) {
|
|
12732
|
+
_neutralizeRoot(dirty);
|
|
12733
|
+
}
|
|
12734
|
+
throw error;
|
|
12266
12735
|
}
|
|
12267
12736
|
/* If we sanitized `dirty` in-place, return it. */
|
|
12268
|
-
if (
|
|
12737
|
+
if (inPlace) {
|
|
12738
|
+
/* Fail-closed completion of the audit-5 F1 fix: every node removed from
|
|
12739
|
+
the caller's live tree is detached but may still hold a queued
|
|
12740
|
+
resource-event handler that fires in page scope after we return. The
|
|
12741
|
+
move-hoist covers only disallowed-tag KEEP_CONTENT removals; strip the
|
|
12742
|
+
non-allow-listed attributes off every other removed subtree (clobber,
|
|
12743
|
+
mXSS, namespace, comments, KEEP_CONTENT:false, …) so those handlers are
|
|
12744
|
+
cancelled before any event can fire. Runs synchronously, pre-return. */
|
|
12745
|
+
arrayForEach(DOMPurify.removed, entry => {
|
|
12746
|
+
if (entry.element) {
|
|
12747
|
+
_neutralizeSubtree(entry.element);
|
|
12748
|
+
}
|
|
12749
|
+
});
|
|
12269
12750
|
if (SAFE_FOR_TEMPLATES) {
|
|
12270
|
-
|
|
12751
|
+
_scrubTemplateExpressions2(dirty);
|
|
12271
12752
|
}
|
|
12272
12753
|
return dirty;
|
|
12273
12754
|
}
|
|
12274
12755
|
/* Return sanitized string or DOM */
|
|
12275
12756
|
if (RETURN_DOM) {
|
|
12276
12757
|
if (SAFE_FOR_TEMPLATES) {
|
|
12277
|
-
|
|
12758
|
+
_scrubTemplateExpressions2(body);
|
|
12278
12759
|
}
|
|
12279
12760
|
if (RETURN_DOM_FRAGMENT) {
|
|
12280
12761
|
returnNode = createDocumentFragment.call(body.ownerDocument);
|
|
@@ -12304,20 +12785,28 @@ function createDOMPurify() {
|
|
|
12304
12785
|
}
|
|
12305
12786
|
/* Sanitize final string template-safe */
|
|
12306
12787
|
if (SAFE_FOR_TEMPLATES) {
|
|
12307
|
-
|
|
12308
|
-
serializedHTML = stringReplace(serializedHTML, expr, ' ');
|
|
12309
|
-
});
|
|
12788
|
+
serializedHTML = _stripTemplateExpressions(serializedHTML);
|
|
12310
12789
|
}
|
|
12311
|
-
return trustedTypesPolicy && RETURN_TRUSTED_TYPE ?
|
|
12790
|
+
return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? _createTrustedHTML(serializedHTML) : serializedHTML;
|
|
12312
12791
|
};
|
|
12313
12792
|
DOMPurify.setConfig = function () {
|
|
12314
12793
|
let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
12315
12794
|
_parseConfig(cfg);
|
|
12316
12795
|
SET_CONFIG = true;
|
|
12796
|
+
SET_CONFIG_ALLOWED_TAGS = ALLOWED_TAGS;
|
|
12797
|
+
SET_CONFIG_ALLOWED_ATTR = ALLOWED_ATTR;
|
|
12317
12798
|
};
|
|
12318
12799
|
DOMPurify.clearConfig = function () {
|
|
12319
12800
|
CONFIG = null;
|
|
12320
12801
|
SET_CONFIG = false;
|
|
12802
|
+
SET_CONFIG_ALLOWED_TAGS = null;
|
|
12803
|
+
SET_CONFIG_ALLOWED_ATTR = null;
|
|
12804
|
+
// Drop any caller-supplied Trusted Types policy so it cannot poison later
|
|
12805
|
+
// `RETURN_TRUSTED_TYPE` output. The internal default policy (cached, and
|
|
12806
|
+
// never recreated — Trusted Types throws on duplicate names) is restored by
|
|
12807
|
+
// the next `_parseConfig`. See GHSA-vxr8-fq34-vvx9.
|
|
12808
|
+
trustedTypesPolicy = defaultTrustedTypesPolicy;
|
|
12809
|
+
emptyHTML = '';
|
|
12321
12810
|
};
|
|
12322
12811
|
DOMPurify.isValidAttribute = function (tag, attr, value) {
|
|
12323
12812
|
/* Initialize shared config vars if necessary. */
|
|
@@ -12332,9 +12821,19 @@ function createDOMPurify() {
|
|
|
12332
12821
|
if (typeof hookFunction !== 'function') {
|
|
12333
12822
|
return;
|
|
12334
12823
|
}
|
|
12824
|
+
/* Reject unknown entry points. Without this, a non-hook key (e.g.
|
|
12825
|
+
* '__proto__') indexes off the prototype chain rather than a real
|
|
12826
|
+
* hook array, and arrayPush then writes to Object.prototype. Guard
|
|
12827
|
+
* with an own-property check against the known hook names. */
|
|
12828
|
+
if (!objectHasOwnProperty(hooks, entryPoint)) {
|
|
12829
|
+
return;
|
|
12830
|
+
}
|
|
12335
12831
|
arrayPush(hooks[entryPoint], hookFunction);
|
|
12336
12832
|
};
|
|
12337
12833
|
DOMPurify.removeHook = function (entryPoint, hookFunction) {
|
|
12834
|
+
if (!objectHasOwnProperty(hooks, entryPoint)) {
|
|
12835
|
+
return undefined;
|
|
12836
|
+
}
|
|
12338
12837
|
if (hookFunction !== undefined) {
|
|
12339
12838
|
const index = arrayLastIndexOf(hooks[entryPoint], hookFunction);
|
|
12340
12839
|
return index === -1 ? undefined : arraySplice(hooks[entryPoint], index, 1)[0];
|
|
@@ -12342,6 +12841,9 @@ function createDOMPurify() {
|
|
|
12342
12841
|
return arrayPop(hooks[entryPoint]);
|
|
12343
12842
|
};
|
|
12344
12843
|
DOMPurify.removeHooks = function (entryPoint) {
|
|
12844
|
+
if (!objectHasOwnProperty(hooks, entryPoint)) {
|
|
12845
|
+
return;
|
|
12846
|
+
}
|
|
12345
12847
|
hooks[entryPoint] = [];
|
|
12346
12848
|
};
|
|
12347
12849
|
DOMPurify.removeAllHooks = function () {
|
|
@@ -39588,7 +40090,7 @@ class TrackDbHub {
|
|
|
39588
40090
|
*/
|
|
39589
40091
|
#getTrackConfig(t) {
|
|
39590
40092
|
|
|
39591
|
-
const format = typeFormatMap.get(t.format) || t.format;
|
|
40093
|
+
const format = typeFormatMap.get(t.format.toLowerCase()) || t.format;
|
|
39592
40094
|
|
|
39593
40095
|
const config = {
|
|
39594
40096
|
"id": t.getProperty("track"),
|
|
@@ -39687,14 +40189,9 @@ class TrackDbHub {
|
|
|
39687
40189
|
config.visibilityWindow = maxWindowToDraw;
|
|
39688
40190
|
}
|
|
39689
40191
|
|
|
39690
|
-
//
|
|
39691
|
-
if (t.hasProperty("maxWindowCoverage")) {
|
|
39692
|
-
|
|
39693
|
-
if (maxWindowToDraw > Number.MAX_SAFE_INTEGER) {
|
|
39694
|
-
maxWindowToDraw = Number.MAX_SAFE_INTEGER;
|
|
39695
|
-
}
|
|
39696
|
-
config.visibilityWindow = maxWindowToDraw;
|
|
39697
|
-
}
|
|
40192
|
+
// TODO - support "maxWindowCoverage"
|
|
40193
|
+
// if (t.hasProperty("maxWindowCoverage")) {
|
|
40194
|
+
// }
|
|
39698
40195
|
|
|
39699
40196
|
return config
|
|
39700
40197
|
}
|
|
@@ -52050,7 +52547,9 @@ class HtsgetBamReader extends HtsgetReader {
|
|
|
52050
52547
|
}
|
|
52051
52548
|
|
|
52052
52549
|
/*! For license information please see cram-bundle.js.LICENSE.txt */
|
|
52053
|
-
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})();
|
|
52550
|
+
let gmodCRAM;
|
|
52551
|
+
(()=>{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\vAB7\0AB 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\0AA\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\0AA\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\vAAÎ\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\rAA#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#\0Ak"$\0@ L\r\0 AÀq\r\0 k"A AI"- E@@ \0 A\r Ak"AÿK\r\0\v\v \0 \r\v Aj$\0\v\0 \0-\0\0A qE@ \0!\v\vW~@Aý\0(\0" \0B|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@ AI\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"\tAG\r\0\v@ \0 F\r\0 \vA rA G@A\0!A\0! \vA I@@ Aj! \vAI \vAt!\v\r\0\v\v@ \bAj Atj" (\0 t6\0 ( t6 (\b t6\b (\f t6\f ( t6 ( t6 ( t6 ( t6 A\bj"AG\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"\nAG\r\0\v A G\r\0Aj"\0 J\r\0 \b (\0\0"6\0 AI\r\0 \b (\0"\t6 \tAI\r\0 \b (\0\b"\n6\b \nAI\r\0 \b (\0\f"\v6\f \vAI\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"AI"\rj"AA\0 At"j/\0 \tA\fvl j/\0j"AI"j"\tAA\0 \nAÿq"At"\fj/\0 \nA\fvl \f j/\0j"\nAI"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"AI"j"AA\0 \rAt"j/\0 A\fvl \bAÐ(j j/\0j"AI"\rj"AA\0 At"\vj/\0 \tA\fvl \v j/\0j"\tAI"j"\vAA\0 \nAtr A\btr \n "\nA\fv \nAÿq"At"\nj/\0l \n j/\0j"\nAI"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 \0AI"\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 Axl j"Aä\0n"A0j:\0 Aj\v" Al 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 Axl j!\v \0 Aä\0n"A0j:\0\0 \0Aj!\0 Al 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" \rAj*!\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!" \rAj!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 #BB\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! \rAj \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 \rAjE\r \r( G\r \rAj \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"AG\r\0\vA\0!A°À\v"E@ \tA\0\f\v@ A\blj"\0A; \0A;\b \0A6\n \0BÀ7 \0A\bj!A!@ Atj"A\0;\0 ; Ar"Atj"\nA\0;\0 \n ; AG@ 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"AG\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 AO\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 AO\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 AHj 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 A6\n BÀ7 A\bj!A!@ Atj"\nA\0;\0 \n ; Ar"\nAtj"\vA\0;\0 \v \n; AG@ 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"\0AG\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 AO\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 AO\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 AHj 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"AG\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 AO\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 AO\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 rAxqAxF\r\0\v@ "Aj! -\0\0\r\0\v\v \0k\v/\0@ Aÿ\0M\r\0 AqA¿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 \tAq@A!Aþ\n\f\vAÿ\nAý\n \tAq"\v! ! "BZ@@ 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 rAxqAxG\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 \tAs\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 AO@ @ \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"\0AG\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ð#\0Ak"\b$\0@ AI\r\0 AþÿÿÿK\r\0@@ E@ \b"! E\r\v \0 j! \bAjA\0A\bü\v\0 \0Aj! \0-\0\0!@@ \bAj 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@ \bAj 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@ \bAj \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"\tAG\r\0\v@ \0 F\r\0 \fA rA G@A\0!A\0! \fA I@@ Aj! \fAI \fAt!\f\r\0\v\v@ \bAj Atj" (\0 t6\0 ( t6 (\b t6\b (\f t6\f ( t6 ( t6 ( t6 ( t6 A\bj"AG\r\0\v\vA\0!@@ \bAj \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 Aj6\f Aj6\b Aj6 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"\rAG\r\0\v A G\r\0 kAH\r\0 \b (\0\0"6\0 AI\r\0 \b (\0"6 AI\r\0 \b (\0\b"6\b AI\r\0 \b (\0\f"6\f AI\r\0 \b (\0"6 AI\r\0 \b (\0"6 AI\r\0 \b (\0"6 AI\r\0 \b (\0"6 AI\r\0 \b (\0 "6 AI\r\0 \b (\0$"6$ AI\r\0 \b (\0("6( AI\r\0 \b (\0,"6, AI\r\0 \b (\x000"60 AI\r\0 \b (\x004"64 AI\r\0 \b (\x008"68 AI\r\0 \b (\0<"6< AI\r\0 \b (\0@"6@ AI\r\0 \b (\0D"6D AI\r\0 \b (\0H"6H AI\r\0 \b (\0L"6L AI\r\0 \b (\0P"6P AI\r\0 \b (\0T"6T AI\r\0 \b (\0X"6X AI\r\0 \b (\0\\"6\\ AI\r\0 \b (\0`"6` AI\r\0 \b (\0d"6d AI\r\0 \b (\0h"6h AI\r\0 \b (\0l"6l AI\r\0 \b (\0p"6p AI\r\0 \b (\0t"6t AI\r\0 \b (\0x"6x AI\r\0 \b (\0|"6| AI\r\0 Aj! Aàÿÿÿq"E\r \0kAj 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 AI"\06\0 \v AA\0 \0j"-\0A\bt -\0\0 \tAtrr \t \tAI"\06 \v AA\0 \0j"-\0A\bt -\0\0 Atrr AI"\06\b \v AA\0 \0j"-\0A\bt -\0\0 Atrr AI"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 AI"\06\0 \v AA\0 \0j"-\0A\bt -\0\0 Atrr AI"\06 \v AA\0 \0j"-\0A\bt -\0\0 Atrr AI"\06 \v AA\0 \0j"-\0A\bt -\0\0 Atrr AI"\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 \bAj$\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Â~#\0Ak"\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"AG\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 BB\0R\r\v §j" \b \0 §j"-\0\0Atj)\x007\0\0 \b -\0Atj)\x007\0\b B|! B|!\v B\bB\0R\r\v §j \b \0 §j-\0\0Atj)\x007\0\0 B\b|!\v §Aj\v!@ BP\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 BB\0R\r\v \b \0 §j"-\0\0Atj/\0! §j" \b -\0Atj/\0;\0 ;\0\0 B|! B|!\v S@ B
|"B"|! BP@ §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"|! BP@ §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 \bAj$\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!. Aj!+ 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 \tAG6 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 \tAG6 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 \tAG6 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 \tAG6 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 AG6 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 AG6 \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 AG6 \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 AG6 \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 \bAG6 \0AtAð+j(\0!\b\v Aj6À\b \bAk"\x006 \vAÿq \0AFsAj6\f \rM\rT \t \rAtj(\0"A\bv68 \0E@ ("\0Aj"\tA\0 \tAG6 \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ÿqAG\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"AG\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 Alj \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 Alj!\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"\0AK\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"AG\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"\0AG\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"AG\r\0\v@@@A\0! \bAtj(\0"\0A\0H@ \r!\t\f\v \0 \vJ@ \r!\t\f\v \bAF@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"\bAG\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 \0AG@ , 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"\0AK\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"\0AK\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"§" \0ArAI"\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 \0B~! 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 \0Aj\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-\0AF\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$ A6 Bp7 B´þ\x007 Bp7Ä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 \bAG\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@ \bAqE\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@ ("\0AqE\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!@ \0AqE\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 \vA6AÑþ\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"\0Aj6d \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 AI\r \v 6 \v 6\0 \v 6 \v \f6\f 6@ \b6< \f j"Ak! \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 \fkAj"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@ \vA6 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@ \0AqE\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@ ("\nAq@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@ ("\nAqE\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 ("\nAqE\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 (\bjAA\0 ("A¿þ\0FjAAA\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"Aj\v"\bE\r\0 \bB\x007 \b 6 \bA\x006 \bA\x006 \b \bAj"6\0 \bA\fjA\0Aü\v\0 @ A\0 ü\v\0\v \bA\x006 \bA6A\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"Alj"\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"\rAlj"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 rAxqAxG\r\0@ 6\0 Aj! \0"Aj!\0A\b ("k rAxqAxF\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@ Al"\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 Alj"(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"AG\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Ã)#\0Ak"$\0@ AI\r\0 AþÿÿÿK\r\0AæÂ\0\v"E\r\0@@@@@A\v"E\r\0@ \0-\0\0"\nAðqAÀF@@ Aj"\t Atj A³!lj6\0 Ar"At \tj A³!lj6\0 Ar"At \tj A³!lj6\0 Ar"At \tj A³!lj6\0 Aj"AG\r\0\f\v\0\v@ Aj"\t Atj A³\tlj6\0 Ar"At \tj A³\tlj6\0 Ar"At \tj A³\tlj6\0 Ar"At \tj A³\tlj6\0 Aj"AG\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 AKq!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"\0AG\r\0\v\v A\ftj! A\ntj! Aj 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"\tAG\r\0\v \r G\r\v \n!\v Aj"AG\r\0\v A\0! \f \f"Aj" K\r (\0\0"\0AI\r (\0"AI\r (\0\b"\bAI\r (\0\f"AI\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" Aj" \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 \0AI"j"AA\0 AI"j"\f-\0A\bt \f-\0\0 \bAtrr \b \bAI"!\b \fAA\0 j"\f-\0A\bt \f-\0\0 Atrr AI"! -\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@@ AM@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" Aj" \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 \0AI"j"AA\0 AI"j"\f-\0A\bt \f-\0\0 \bAtrr \b \bAI"!\b \fAA\0 j"\f-\0A\bt \f-\0\0 Atrr AI"! -\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 \0AI"j"AA\0 AI"j"\f-\0A\bt \f-\0\0 \bAtrr \b \bAI"!\b \fAA\0 j"\f-\0A\bt \f-\0\0 Atrr AI"! -\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 Aj "\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 Aj "\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 Aj$\0 \v/#|#\0Ak"$\0@ AI\r\0 AþÿÿÿK\r\0AæÒ\0\v"E\r\0@ \0-\0\0"\fAðqAÀF@@ Aj" Atj A³!lj6\0 AF\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@ Aj" Atj A³\tlj6\0 AF\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 AjA\0A\bü\v\0@ \n \vF\r\0 \nAj!\0 \n-\0\0!A\0!@ \nAj \vO\r\0@ Aj 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@ Aj 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" Ajj(\0@A\0!\r A\vjA\0A\bü\v\0A\0!A\0!\f \0!@@ \0 \vO\r\0@ \fAt" Ajj(\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"\0AG\r\0\v\v A\ntj! A\ftj!\r Aj 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"AG\r\0\v F\r\vA\0!\f\f\v !\0\v Aj"AG\r\0\v \0 \nk!\f\v \n \fj "kAH\r\0 (\0\0"\x006 \0AI\r\0 (\0"\x006 \0AI\r\0 (\0\b"\x006 \0AI\r\0 (\0\f"\x006 \0AI\r\0 (\0"\x006 \0AI\r\0 (\0"\x006 \0AI\r\0 (\0"\x006 \0AI\r\0 (\0"\x006 \0AI\r\0 (\0 "\x006 \0AI\r\0 (\0$"\x006¤ \0AI\r\0 (\0("\x006¨ \0AI\r\0 (\0,"\x006¬ \0AI\r\0 (\x000"\x006° \0AI\r\0 (\x004"\x006´ \0AI\r\0 (\x008"\x006¸ \0AI\r\0 (\0<"\x006¼ \0AI\r\0 (\0@"\x006À \0AI\r\0 (\0D"\x006Ä \0AI\r\0 (\0H"\x006È \0AI\r\0 (\0L"\x006Ì \0AI\r\0 (\0P"\x006Ð \0AI\r\0 (\0T"\x006Ô \0AI\r\0 (\0X"\x006Ø \0AI\r\0 (\0\\"\x006Ü \0AI\r\0 (\0`"\x006à \0AI\r\0 (\0d"\x006ä \0AI\r\0 (\0h"\x006è \0AI\r\0 (\0l"\x006ì \0AI\r\0 (\0p"\x006ð \0AI\r\0 (\0t"\x006ô \0AI\r\0 (\0x"\x006ø \0AI\r\0 (\0|"\x006ü \0AI\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 Aj! ¸DÉ?¢!\' ¸!(@ A\fG@ \t@@ At"\0A\fr"j"(\0A\ftj Aj" 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! Aj" \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 \0AI"\06\0 AA\0 \0j"-\0A\bt -\0\0 Atrr AI"\06\0 AA\0 \0j"-\0A\bt -\0\0 \vAtrr \v \vAI"\06\0 AA\0 \0j"-\0A\bt -\0\0 \nAtrr \n \nAI"\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@ Aj" \0At"A\fr"j"(\0"Atj(\0 Aj" 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 Aj"\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 AI"6\0 $ AA\0 j"-\0A\bt -\0\0 \bAtrr \b \bAI"6\0 " AA\0 j"-\0A\bt -\0\0 Atrr AI"6\0 AA\0 j"-\0A\bt -\0\0 Atrr AI"! 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" Aj \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 Aj$\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\x007p B\x007` B\x007P B\x007@ B\x0070 B\x007 B\x007 B\x007\0 Aj"AG\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"AG\r\0\vA\0! K\r (\0\0"\0AI\r (\0"AI\r (\0\b"\tAI\r (\0\f"AI\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@ \0AI"j! -\0\0 \0A\btr \0 "\0AÿÿÿK -\0\0 \0A\btr!\0 Aj\v! AI"j! -\0\0 A\btr "AÿÿÿK -\0\0 A\btr! Aj\v! \tAI"j! -\0\0 \tA\btr \t "\tAÿÿÿK -\0\0 \tA\btr!\t Aj\v! AI"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"AI\r\0 (\0"AI\r\0 (\0\b"AI\r\0 (\0\f"\0AI\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@ AI"j! -\0\0 A\btr "AÿÿÿK -\0\0 A\btr! Aj\v! AI"j! -\0\0 A\btr "AÿÿÿK -\0\0 A\btr! Aj\v! AI"j! -\0\0 A\btr "AÿÿÿK -\0\0 A\btr! Aj\v! \0AI"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"\nAG\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"61 E@A\0!\f\vA\0! \tA\x0061 \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 Aq":\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"AG\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"AG\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"AG\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 61A\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"\nAG\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"AG\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"AG\r\0\v\v 6\0 Aïÿ6 Aïÿ6\b A\0;\b Aj"AG\r\0\v\v \tAj!A\0!@ Atj"A;\0 ; Ar"Atj"A;\0 ; Ar"Atj"A;\0 ; Ar"Atj"A;\0 ; Aj"AG\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"AG\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"AG\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"AG\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"AG\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! \0AO\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! \0AO\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! \0AO\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! \0AO\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! \0AO\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! \0AO\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! \0AO\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! \0AO\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àA6\0AÈA*6\0AäA6\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\v28R`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ŲMPG¸í\b&ðÉ"ÖÖ/aËK+d\f5ÓÍ1\n <½½O8pÛLÇÆÐHàE©ýRA¬_°Ô[ÂVuVRÈ6j+Øn¦\rcZg@y£]Ü}z{pÍf^tà¶#W«â¡9`<À\'ÝæRû¥åædX[+¾ïFêº6`©·}h³-/30î©ê¤]\vl m2Ô\'póÐþV°ÝIKqÙL6Çû÷Ã" ´Î=uÊ(:òûöF»¸ûñ¦yÿôö>áCëÿåͼè-Ð}ìwp4ÀmG0K=®VÅ9«\'C#Å=\0.r Á*ÏxO¡¦\f»Íë¤öK}Ð\b\bÊÍÉ\f«x°¶V|iqÞÔuÛÝklÀRoµæbûÐf¿F^\b[^ZÑ}Wf`ÜSc0MÔ-ZI\r\vDºØ@Æ¥¬ Ûd¨ùý\'¥Nàæ¡K°¡¿ü`»%#¶â²/+6lA/ö\rîó]©D@hf+*{êç´àP\0uä&6é>;÷í;k°óvq÷UP2úâMóþ_ð¼Æèí}Â1Ë>ÏÖÿ˸Õ4yÑí½:ÜZ ûØîà\fiYýÍmÛ`7ÆOd2\bz
É~\\së°KwV\rOáÅK86F+GB{\0\\=fÁXä@US]CQ;%)&Ü!ð\0,G^(BM6õPØ2,v?kZ;&ÖËÔHí\nÿðVú M½Ð#RV/ñ¹Kîõ`mø×plüÒ +âe=êæ¼©ë\vhï¶»\'צæÓØ¥ÞodÚjÍ#ÄÝÐâÀö¡Í³ë`É~>½Éÿ¹¶¼´§«}°¢û:®æûªÌÀ¸§{Ýy£Æ`6q}÷¨[´Fu2\vót-°Ã0q
].KY÷«\bT@¶ÉPEæNòûOJ+Ý\fGÀÍC!}{`COF\0rø[Ávý\vhJGl0a$-ÅeéK^VZp0mØ5= ^[\vìÜQ¦7æ»R3?>Ð:Ð$:ÍV ãë-TöÔ)y&©ÅÎ;hÁ+Ì \0êÈ¥PÖMlÒËk/ß|vîÛÁË¡ãvÖ`ç¯ð#êíâî½¥ðª dôs\'ùÄæý\tý¸¾àygÆ:ÐÛûÕ¼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é£d2Û¤¸ÜyéÕàÙÒ+L¶\t½|±~-¸ç¿d·ò °jHq¹óÞA¾}ÔÚëäÝmQµÔôÇ
ÓVlÀ¨kdzùbýìÉeO\\Ùlcc=úõ\r\bÈ n;^iLäA`Õrqg¢Ñä<GÔKý
\rÒkµ\n¥ú¨µ5l²BÖÉ»Û@ù¼¬ãlØ2u\\ßEÏ\rÖÜY=Ñ«¬0Ù&:\0ÞQQ×Èaпµô´!#ijVºÏ¥½¸¸(\b_²Ù\fÆ$é\v±|o/LhX«aÁ=-f¶AÜvqÛ¼ Ò*Õï
±qµ¶¥ä¿3Ô¸è¢Éx4ù\0¨\tá»\rj-=m\bld\\cæôQkkbalØ0e
N\0bòíl{¥Áô\bWÄõÆÙ°ePé·ê¸¾|¹üßÝbI-Úó|ÓeLÔûXa²MÎQµ:t\0¼£â0»ÔA¥ßJר=mÄѤûôÖÓjéiCüÙn4Fgи`Ú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ðÒ£\bhòþÂi]Wb÷Ëgeq6lçknvÔþà+ÓZzÚÌJÝgoß¹ùùï¾C¾·Õ°`è£ÖÖ~Ñ¡ÄÂØ8RòßOñg»ÑgW¼¦Ýµ?K6²HÚ+\rØL\n¯öJ6`zAÃï`ßUßg¨ïn1y¾iF³aËf¼ Òo%6âhRw\fÌG\v»¹"/&U¾;ºÅ(\v½²Z´+j³\\§ÿ×Â1ÏеÙ,®Þ[°Âd&òcì£ju\nm©\t?6ë
grW\0J¿z¸â®+±{8¶\fÒ\r¾Õå·ïÜ|!ßÛ\vÔÒÓBâÔñø³ÝhnÚ;[&¹öáw°owG·æZ\bpjÿÊ;f\\\vÿei®bøÓÿkaEÏlxâ\n îÒ\r×TN³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;gevÎÊÊM©¯YëíNÐ+Õ#¦Dá²ÖÛôí¼ø> Wxr2ë=6ÓQ¶gKø!p|%«Æàc¡
©Ý\b*ïæoO|@+®:{LËð6åd¶\r}}ÑFz\vÓ·]0´ÒÎð3VBà>ùÛY\vPüMk&2ÐÁUµR»Tv1ÞÍßö¸û¹\'ÿ½@â5ðéMsË(àmÊɦV¬l* cf.û:úhÀ]¢ô0ä¶Uw×´1+°Ñûf~½]~-ágÚ[/V`HÈÅÆ\f)ýkLI°Â㥠ø5PPÖ6ÿÜíQOK{\tprÃ=Û±
¼Ô¤v#¨âMDÍ(\0íbn;ýÎæ»¦©që\0,7ÐgI3\v>Õu0Y°¿}ðùFzjàÓ,Û´þæQ z4ÝåHÇæ-\r«+KLçØ6\b\rocT@ÆÌ{¡©ð/[ËcJÊå×½Déa Èm\'«V@ί&ß²é¸×#PxekvöÍ2ü°öUz»ü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ë7OÐPî
ùAæ$P\0ÚÅ;½ ÜvMsj»=ìý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ä%0uï}*Ú©FM¿6ÒÃÎ\rµ¦@\tB{{lÑÝ?æXè]«ñG"KϾYp¨Û=tÕfF "ð\0EÊÖì:í_#ë¦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àö\\*»&ólAÿ&w¹bsP˽5k¬Ø\0\0\0\0Xâ×ñ´t©V£â\rhéº>\vÜK>J
¡\tÝCÞt},÷ªgÉà?+7}ÎC\n;BR» Äû=ög£½°è6*ú°¶È-0A°|Y&ãצÍ~ Wn& µ¹m+ó5«i$-?ÄÝPv&Löfñåp0R½ðÒ
ö{ìÏ®û}X»_ýºlk%/ÉëÇø`m[8íssfMÆ+æ¯`ù²ÚàeMÆ5FÍ$âïKrA·Ëü@®Ü¤ÀL\v\rF¨UÆøPg<ÃÐ
ëjVÓH2Ö1y]Õ!Ýí[»¡ÐÛYv(ì\bMplêÙê¼9j^îÊá`¤as;çÔÐcg6ñ©DõqK\\÷0wÿçOüÁ|#z¾úuÙæz"×J^zW¨ÓÑþ*QýÀÚ"·ZÀ`1ÜÃi\\t§ÊëWÿJ\tVÌ_#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:ÆÎlNÙZãSc±^«åçýó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¦\bq:ÂÒb )
Oqüت;Hìx4× ´û\02£Ñ²Ot9q>¹ék?ÅJ3¿\'ý)¸Þ¥©Z\t\f/\fªT¯î}$Ð7G¤2àî"dC¶¢r[Ä*¹\tï°Û\rg3-ÈÑúaY9e÷úͯN¹^¬n$Mpóä&P¼ÄlBñ4Â&D)
ÅÄËROõÖÏÏIAl\'É£»é_<ø±ßÞ/Y@Ùj[\vRTSÒ¶ÆúTàe¢Ô²fyßâ>ù=5kÏÿAt·\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ÝN7pøÜØ0¸F]Ѳ³ÓXReÀ·6oîV×Ù¼¹µ:ST²h¼<JÝ E¥¿}ÃO^Ë :Á¿AÛwí®¹ªkDX9«(äåsÉR·«1vJ9c.3MxÏ
X}LîË$J´dÅüæ§!`aF2"oÃ+N¡öÈj@@
`pºÆßUãY¿\vPf§%±w^åÌñ´z£[lÞÜhBïµ\b¨ZGj\tt¦¿&Iéb £\bÔòLx,.|{ûGúñ¨~~ûMÔpýR&\0ut4-l÷é«_ùirU×ã
gñ>QbPÈËç±~\bÓ£â2M\rVcì·©1Õt·é4Âå\\fð½ÐÈß\rNõ>»Z±2û»`ÙÚæþ8l´HhÉ©":&Ëÿ¼Ì*Iî#NCÀ¯õ-Í(Ç,F(D:9Þ¥k1ÇQíÛ&ç¿4BíÕ£[Ã:ÁEÐ 0?æk®`P9A¿«ã;íD1Ã¥fJZ åìEOH:¹lþhV#î¼ï¼S²j)À]\bôF·éBXºÈx\foÑ
ûgNjm`~Û2d´ý°æat¢ËxM÷É}Ã1rucs¨åñ·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ý2K`þçAN÷ðd*
Èõí8·\fåìnScå1éëï\b\nYMçhË\r2âùÊE:|Õz¡?ÃÐÿí1«¿Þ|v94ÀkÛõd-ÒFÂvÀ(¹Çó³¼&îÉpØh#n:ÌÑ. I0ò¦REtL³ó&£×ù\bB6OZTÜGµ$¨Ýñ^<6£±^ë%[¿]w´ÛWYU:á\vºX<P¹ß¿Érg(ÄQJ×b«¯
Ï¥«l.ùLÎix-ÅÜRp$j\0F·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Û¢,ñIo:ïëauV¨ªÓÑú2£.¹ù©=¢ú~i9}5«]vÞ\rÚò
±N1d}³È\'¶O£íà&)«Z»»è<lÊo/!è«ò9Ä`T¾@;ÎíðhjHúJ\vG\\ÍÆÌ×`äâßZ/DXÞtÞ\v¿xÖÃê¬\bL+SÖxRpÿôeF]·®àÚ3õzp>Ü;BN.xè©üÒrú¿Ô}j*V»)áð<ºjoîqÌè¥\r^ÈæÆøObb!VÄüJÊ7±ÍNl+\r§FÛ9¹¾K#íÂ
j³¬Tx¡+Ð#;xèÿØß_©X3\v\\ÏWåsMCôÉÇÙ§\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í¥!C7\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\\ô?×ÛpdM3¯ë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\tD\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;})();
|
|
52552
|
+
var gmodCRAM$1 = gmodCRAM;
|
|
52054
52553
|
|
|
52055
52554
|
class FileHandler {
|
|
52056
52555
|
|
|
@@ -52168,7 +52667,7 @@ class CramReader {
|
|
|
52168
52667
|
this.browser = browser;
|
|
52169
52668
|
this.genome = genome;
|
|
52170
52669
|
|
|
52171
|
-
this.cramFile = new gmodCRAM.CramFile({
|
|
52670
|
+
this.cramFile = new gmodCRAM$1.CramFile({
|
|
52172
52671
|
filehandle: config.fileHandle ? config.fileHandle : new FileHandler(config.url, config),
|
|
52173
52672
|
//url: config.url,
|
|
52174
52673
|
seqFetch: config.seqFetch || seqFetch.bind(this),
|
|
@@ -52176,9 +52675,9 @@ class CramReader {
|
|
|
52176
52675
|
});
|
|
52177
52676
|
|
|
52178
52677
|
const indexFileHandle = config.indexFileHandle ? config.indexFileHandle : new FileHandler(config.indexURL, config);
|
|
52179
|
-
this.indexedCramFile = new gmodCRAM.IndexedCramFile({
|
|
52678
|
+
this.indexedCramFile = new gmodCRAM$1.IndexedCramFile({
|
|
52180
52679
|
cram: this.cramFile,
|
|
52181
|
-
index: new gmodCRAM.CraiIndex({
|
|
52680
|
+
index: new gmodCRAM$1.CraiIndex({
|
|
52182
52681
|
//url: config.indexURL
|
|
52183
52682
|
filehandle: indexFileHandle
|
|
52184
52683
|
}),
|
|
@@ -52303,6 +52802,9 @@ class CramReader {
|
|
|
52303
52802
|
|
|
52304
52803
|
const alignment = decodeCramRecord(record, header.chrNames);
|
|
52305
52804
|
|
|
52805
|
+
// Convert qual to regular array -- this was a breaking change somewhere between 5.X and 8.3.0
|
|
52806
|
+
if(alignment.qual) alignment.qual = Array.from(alignment.qual);
|
|
52807
|
+
|
|
52306
52808
|
if (this.filter.pass(alignment)) {
|
|
52307
52809
|
alignmentContainer.push(alignment);
|
|
52308
52810
|
}
|
|
@@ -76656,6 +77158,9 @@ class XMLSession {
|
|
|
76656
77158
|
indexURL: r.getAttribute("index"),
|
|
76657
77159
|
order: idx
|
|
76658
77160
|
};
|
|
77161
|
+
if (r.hasAttribute("format")) {
|
|
77162
|
+
config.format = r.getAttribute("format");
|
|
77163
|
+
}
|
|
76659
77164
|
resourceMap.set(config.url, config);
|
|
76660
77165
|
if (!hasTrackElements) {
|
|
76661
77166
|
tracks.push(config);
|
|
@@ -76743,6 +77248,13 @@ function extractTrackAttributes(track, config) {
|
|
|
76743
77248
|
|
|
76744
77249
|
config.name = track.getAttribute("name");
|
|
76745
77250
|
|
|
77251
|
+
if(track.hasAttribute("type")) {
|
|
77252
|
+
config.type = track.getAttribute("type");
|
|
77253
|
+
}
|
|
77254
|
+
if(track.hasAttribute("format")) {
|
|
77255
|
+
config.format = track.getAttribute("format");
|
|
77256
|
+
}
|
|
77257
|
+
|
|
76746
77258
|
const color = track.getAttribute("color");
|
|
76747
77259
|
if (color) {
|
|
76748
77260
|
config.color = "rgb(" + color + ")";
|
|
@@ -77054,7 +77566,7 @@ function createReferenceFrameList(loci, genome, browserFlanking, minimumBases, v
|
|
|
77054
77566
|
})
|
|
77055
77567
|
}
|
|
77056
77568
|
|
|
77057
|
-
const _version = "3.8.
|
|
77569
|
+
const _version = "3.8.3";
|
|
77058
77570
|
function version() {
|
|
77059
77571
|
return _version
|
|
77060
77572
|
}
|