// Generated by dart2js (NullSafetyMode.sound, csp), the Dart to JavaScript compiler version: 2.17.6. // The code supports the following hooks: // dartPrint(message): // if this function is defined it is called instead of the Dart [print] // method. // // dartMainRunner(main, args): // if this function is defined, the Dart [main] method will not be invoked // directly. Instead, a closure that will invoke [main], and its arguments // [args] is passed to [dartMainRunner]. // // dartDeferredLibraryLoader(uri, successCallback, errorCallback, loadId): // if this function is defined, it will be called when a deferred library // is loaded. It should load and eval the javascript of `uri`, and call // successCallback. If it fails to do so, it should call errorCallback with // an error. The loadId argument is the deferred import that resulted in // this uri being loaded. // // dartCallInstrumentation(id, qualifiedName): // if this function is defined, it will be called at each entry of a // method or constructor. Used only when compiling programs with // --experiment-call-instrumentation. (function dartProgram() { function copyProperties(from, to) { var keys = Object.keys(from); for (var i = 0; i < keys.length; i++) { var key = keys[i]; to[key] = from[key]; } } function mixinPropertiesHard(from, to) { var keys = Object.keys(from); for (var i = 0; i < keys.length; i++) { var key = keys[i]; if (!to.hasOwnProperty(key)) to[key] = from[key]; } } function mixinPropertiesEasy(from, to) { Object.assign(to, from); } var supportsDirectProtoAccess = function() { var cls = function() { }; cls.prototype = {p: {}}; var object = new cls(); if (!(object.__proto__ && object.__proto__.p === cls.prototype.p)) return false; try { if (typeof navigator != "undefined" && typeof navigator.userAgent == "string" && navigator.userAgent.indexOf("Chrome/") >= 0) return true; if (typeof version == "function" && version.length == 0) { var v = version(); if (/^\d+\.\d+\.\d+\.\d+$/.test(v)) return true; } } catch (_) { } return false; }(); function inherit(cls, sup) { cls.prototype.constructor = cls; cls.prototype["$is" + cls.name] = cls; if (sup != null) { if (supportsDirectProtoAccess) { cls.prototype.__proto__ = sup.prototype; return; } var clsPrototype = Object.create(sup.prototype); copyProperties(cls.prototype, clsPrototype); cls.prototype = clsPrototype; } } function inheritMany(sup, classes) { for (var i = 0; i < classes.length; i++) inherit(classes[i], sup); } function mixinEasy(cls, mixin) { mixinPropertiesEasy(mixin.prototype, cls.prototype); cls.prototype.constructor = cls; } function mixinHard(cls, mixin) { mixinPropertiesHard(mixin.prototype, cls.prototype); cls.prototype.constructor = cls; } function lazyOld(holder, name, getterName, initializer) { var uninitializedSentinel = holder; holder[name] = uninitializedSentinel; holder[getterName] = function() { holder[getterName] = function() { A.throwCyclicInit(name); }; var result; var sentinelInProgress = initializer; try { if (holder[name] === uninitializedSentinel) { result = holder[name] = sentinelInProgress; result = holder[name] = initializer(); } else result = holder[name]; } finally { if (result === sentinelInProgress) holder[name] = null; holder[getterName] = function() { return this[name]; }; } return result; }; } function lazy(holder, name, getterName, initializer) { var uninitializedSentinel = holder; holder[name] = uninitializedSentinel; holder[getterName] = function() { if (holder[name] === uninitializedSentinel) holder[name] = initializer(); holder[getterName] = function() { return this[name]; }; return holder[name]; }; } function lazyFinal(holder, name, getterName, initializer) { var uninitializedSentinel = holder; holder[name] = uninitializedSentinel; holder[getterName] = function() { if (holder[name] === uninitializedSentinel) { var value = initializer(); if (holder[name] !== uninitializedSentinel) A.throwLateFieldADI(name); holder[name] = value; } var finalValue = holder[name]; holder[getterName] = function() { return finalValue; }; return finalValue; }; } function makeConstList(list) { list.immutable$list = Array; list.fixed$length = Array; return list; } function convertToFastObject(properties) { function t() { } t.prototype = properties; new t(); return properties; } function convertAllToFastObject(arrayOfObjects) { for (var i = 0; i < arrayOfObjects.length; ++i) convertToFastObject(arrayOfObjects[i]); } var functionCounter = 0; function instanceTearOffGetter(isIntercepted, parameters) { var cache = null; return isIntercepted ? function(receiver) { if (cache === null) cache = A.closureFromTearOff(parameters); return new cache(receiver, this); } : function() { if (cache === null) cache = A.closureFromTearOff(parameters); return new cache(this, null); }; } function staticTearOffGetter(parameters) { var cache = null; return function() { if (cache === null) cache = A.closureFromTearOff(parameters).prototype; return cache; }; } var typesOffset = 0; function tearOffParameters(container, isStatic, isIntercepted, requiredParameterCount, optionalParameterDefaultValues, callNames, funsOrNames, funType, applyIndex, needsDirectAccess) { if (typeof funType == "number") funType += typesOffset; return {co: container, iS: isStatic, iI: isIntercepted, rC: requiredParameterCount, dV: optionalParameterDefaultValues, cs: callNames, fs: funsOrNames, fT: funType, aI: applyIndex || 0, nDA: needsDirectAccess}; } function installStaticTearOff(holder, getterName, requiredParameterCount, optionalParameterDefaultValues, callNames, funsOrNames, funType, applyIndex) { var parameters = tearOffParameters(holder, true, false, requiredParameterCount, optionalParameterDefaultValues, callNames, funsOrNames, funType, applyIndex, false); var getterFunction = staticTearOffGetter(parameters); holder[getterName] = getterFunction; } function installInstanceTearOff(prototype, getterName, isIntercepted, requiredParameterCount, optionalParameterDefaultValues, callNames, funsOrNames, funType, applyIndex, needsDirectAccess) { isIntercepted = !!isIntercepted; var parameters = tearOffParameters(prototype, false, isIntercepted, requiredParameterCount, optionalParameterDefaultValues, callNames, funsOrNames, funType, applyIndex, !!needsDirectAccess); var getterFunction = instanceTearOffGetter(isIntercepted, parameters); prototype[getterName] = getterFunction; } function setOrUpdateInterceptorsByTag(newTags) { var tags = init.interceptorsByTag; if (!tags) { init.interceptorsByTag = newTags; return; } copyProperties(newTags, tags); } function setOrUpdateLeafTags(newTags) { var tags = init.leafTags; if (!tags) { init.leafTags = newTags; return; } copyProperties(newTags, tags); } function updateTypes(newTypes) { var types = init.types; var length = types.length; types.push.apply(types, newTypes); return length; } function updateHolder(holder, newHolder) { copyProperties(newHolder, holder); return holder; } var hunkHelpers = function() { var mkInstance = function(isIntercepted, requiredParameterCount, optionalParameterDefaultValues, callNames, applyIndex) { return function(container, getterName, name, funType) { return installInstanceTearOff(container, getterName, isIntercepted, requiredParameterCount, optionalParameterDefaultValues, callNames, [name], funType, applyIndex, false); }; }, mkStatic = function(requiredParameterCount, optionalParameterDefaultValues, callNames, applyIndex) { return function(container, getterName, name, funType) { return installStaticTearOff(container, getterName, requiredParameterCount, optionalParameterDefaultValues, callNames, [name], funType, applyIndex); }; }; return {inherit: inherit, inheritMany: inheritMany, mixin: mixinEasy, mixinHard: mixinHard, installStaticTearOff: installStaticTearOff, installInstanceTearOff: installInstanceTearOff, _instance_0u: mkInstance(0, 0, null, ["call$0"], 0), _instance_1u: mkInstance(0, 1, null, ["call$1"], 0), _instance_2u: mkInstance(0, 2, null, ["call$2"], 0), _instance_0i: mkInstance(1, 0, null, ["call$0"], 0), _instance_1i: mkInstance(1, 1, null, ["call$1"], 0), _instance_2i: mkInstance(1, 2, null, ["call$2"], 0), _static_0: mkStatic(0, null, ["call$0"], 0), _static_1: mkStatic(1, null, ["call$1"], 0), _static_2: mkStatic(2, null, ["call$2"], 0), makeConstList: makeConstList, lazy: lazy, lazyFinal: lazyFinal, lazyOld: lazyOld, updateHolder: updateHolder, convertToFastObject: convertToFastObject, updateTypes: updateTypes, setOrUpdateInterceptorsByTag: setOrUpdateInterceptorsByTag, setOrUpdateLeafTags: setOrUpdateLeafTags}; }(); function initializeDeferredHunk(hunk) { typesOffset = init.types.length; hunk(hunkHelpers, init, holders, $); } var A = {JS_CONST: function JS_CONST() { }, LateError$fieldNI(fieldName) { return new A.LateError("Field '" + fieldName + "' has not been initialized."); }, SystemHash_combine(hash, value) { hash = hash + value & 536870911; hash = hash + ((hash & 524287) << 10) & 536870911; return hash ^ hash >>> 6; }, SystemHash_finish(hash) { hash = hash + ((hash & 67108863) << 3) & 536870911; hash ^= hash >>> 11; return hash + ((hash & 16383) << 15) & 536870911; }, checkNotNullable(value, $name, $T) { return value; }, SubListIterable$(_iterable, _start, _endOrLength, $E) { A.RangeError_checkNotNegative(_start, "start"); if (_endOrLength != null) { A.RangeError_checkNotNegative(_endOrLength, "end"); if (_start > _endOrLength) A.throwExpression(A.RangeError$range(_start, 0, _endOrLength, "start", null)); } return new A.SubListIterable(_iterable, _start, _endOrLength, $E._eval$1("SubListIterable<0>")); }, MappedIterable_MappedIterable(iterable, $function, $S, $T) { if (type$.EfficientLengthIterable_dynamic._is(iterable)) return new A.EfficientLengthMappedIterable(iterable, $function, $S._eval$1("@<0>")._bind$1($T)._eval$1("EfficientLengthMappedIterable<1,2>")); return new A.MappedIterable(iterable, $function, $S._eval$1("@<0>")._bind$1($T)._eval$1("MappedIterable<1,2>")); }, IterableElementError_noElement() { return new A.StateError("No element"); }, IterableElementError_tooFew() { return new A.StateError("Too few elements"); }, LateError: function LateError(t0) { this._message = t0; }, CodeUnits: function CodeUnits(t0) { this._string = t0; }, SentinelValue: function SentinelValue() { }, EfficientLengthIterable: function EfficientLengthIterable() { }, ListIterable: function ListIterable() { }, SubListIterable: function SubListIterable(t0, t1, t2, t3) { var _ = this; _.__internal$_iterable = t0; _._start = t1; _._endOrLength = t2; _.$ti = t3; }, ListIterator: function ListIterator(t0, t1, t2) { var _ = this; _.__internal$_iterable = t0; _.__internal$_length = t1; _.__internal$_index = 0; _.__internal$_current = null; _.$ti = t2; }, MappedIterable: function MappedIterable(t0, t1, t2) { this.__internal$_iterable = t0; this._f = t1; this.$ti = t2; }, EfficientLengthMappedIterable: function EfficientLengthMappedIterable(t0, t1, t2) { this.__internal$_iterable = t0; this._f = t1; this.$ti = t2; }, MappedIterator: function MappedIterator(t0, t1, t2) { var _ = this; _.__internal$_current = null; _._iterator = t0; _._f = t1; _.$ti = t2; }, MappedListIterable: function MappedListIterable(t0, t1, t2) { this._source = t0; this._f = t1; this.$ti = t2; }, EmptyIterable: function EmptyIterable(t0) { this.$ti = t0; }, EmptyIterator: function EmptyIterator(t0) { this.$ti = t0; }, WhereTypeIterable: function WhereTypeIterable(t0, t1) { this._source = t0; this.$ti = t1; }, WhereTypeIterator: function WhereTypeIterator(t0, t1) { this._source = t0; this.$ti = t1; }, FixedLengthListMixin: function FixedLengthListMixin() { }, UnmodifiableListMixin: function UnmodifiableListMixin() { }, UnmodifiableListBase: function UnmodifiableListBase() { }, Symbol: function Symbol(t0) { this._name = t0; }, GeneralConstantMap__constantMapHashCode(key) { if (typeof key == "number") return B.JSNumber_methods.get$hashCode(key); if (type$.Symbol._is(key)) return key.get$hashCode(key); if (type$.Type._is(key)) return A.Primitives_objectHashCode(key); return A.objectHashCode(key); }, GeneralConstantMap__typeTest($T) { return new A.GeneralConstantMap__typeTest_closure($T); }, unminifyOrTag(rawClassName) { var preserved = init.mangledGlobalNames[rawClassName]; if (preserved != null) return preserved; return rawClassName; }, isJsIndexable(object, record) { var result; if (record != null) { result = record.x; if (result != null) return result; } return type$.JavaScriptIndexingBehavior_dynamic._is(object); }, S(value) { var result; if (typeof value == "string") return value; if (typeof value == "number") { if (value !== 0) return "" + value; } else if (true === value) return "true"; else if (false === value) return "false"; else if (value == null) return "null"; result = J.toString$0$(value); return result; }, Primitives_objectHashCode(object) { var hash, property = $.Primitives__identityHashCodeProperty; if (property == null) property = $.Primitives__identityHashCodeProperty = Symbol("identityHashCode"); hash = object[property]; if (hash == null) { hash = Math.random() * 0x3fffffff | 0; object[property] = hash; } return hash; }, Primitives_objectTypeName(object) { return A.Primitives__objectTypeNameNewRti(object); }, Primitives__objectTypeNameNewRti(object) { var interceptor, dispatchName, t1, $constructor, constructorName; if (object instanceof A.Object) return A._rtiToString(A.instanceType(object), null); interceptor = J.getInterceptor$(object); if (interceptor === B.Interceptor_methods || interceptor === B.JavaScriptObject_methods || type$.UnknownJavaScriptObject._is(object)) { dispatchName = B.C_JS_CONST(object); t1 = dispatchName !== "Object" && dispatchName !== ""; if (t1) return dispatchName; $constructor = object.constructor; if (typeof $constructor == "function") { constructorName = $constructor.name; if (typeof constructorName == "string") t1 = constructorName !== "Object" && constructorName !== ""; else t1 = false; if (t1) return constructorName; } } return A._rtiToString(A.instanceType(object), null); }, Primitives__fromCharCodeApply(array) { var result, i, i0, chunkEnd, end = array.length; if (end <= 500) return String.fromCharCode.apply(null, array); for (result = "", i = 0; i < end; i = i0) { i0 = i + 500; chunkEnd = i0 < end ? i0 : end; result += String.fromCharCode.apply(null, array.slice(i, chunkEnd)); } return result; }, Primitives_stringFromCodePoints(codePoints) { var t1, _i, i, a = A._setArrayType([], type$.JSArray_int); for (t1 = codePoints.length, _i = 0; _i < codePoints.length; codePoints.length === t1 || (0, A.throwConcurrentModificationError)(codePoints), ++_i) { i = codePoints[_i]; if (!A._isInt(i)) throw A.wrapException(A.argumentErrorValue(i)); if (i <= 65535) B.JSArray_methods.add$1(a, i); else if (i <= 1114111) { B.JSArray_methods.add$1(a, 55296 + (B.JSInt_methods._shrOtherPositive$1(i - 65536, 10) & 1023)); B.JSArray_methods.add$1(a, 56320 + (i & 1023)); } else throw A.wrapException(A.argumentErrorValue(i)); } return A.Primitives__fromCharCodeApply(a); }, Primitives_stringFromCharCodes(charCodes) { var t1, _i, i; for (t1 = charCodes.length, _i = 0; _i < t1; ++_i) { i = charCodes[_i]; if (!A._isInt(i)) throw A.wrapException(A.argumentErrorValue(i)); if (i < 0) throw A.wrapException(A.argumentErrorValue(i)); if (i > 65535) return A.Primitives_stringFromCodePoints(charCodes); } return A.Primitives__fromCharCodeApply(charCodes); }, Primitives_stringFromNativeUint8List(charCodes, start, end) { var i, result, i0, chunkEnd; if (end <= 500 && start === 0 && end === charCodes.length) return String.fromCharCode.apply(null, charCodes); for (i = start, result = ""; i < end; i = i0) { i0 = i + 500; chunkEnd = i0 < end ? i0 : end; result += String.fromCharCode.apply(null, charCodes.subarray(i, chunkEnd)); } return result; }, Primitives_stringFromCharCode(charCode) { var bits; if (charCode <= 65535) return String.fromCharCode(charCode); if (charCode <= 1114111) { bits = charCode - 65536; return String.fromCharCode((B.JSInt_methods._shrOtherPositive$1(bits, 10) | 55296) >>> 0, bits & 1023 | 56320); } throw A.wrapException(A.RangeError$range(charCode, 0, 1114111, null, null)); }, Primitives_lazyAsJsDate(receiver) { if (receiver.date === void 0) receiver.date = new Date(receiver._core$_value); return receiver.date; }, Primitives_getYear(receiver) { return receiver.isUtc ? A.Primitives_lazyAsJsDate(receiver).getUTCFullYear() + 0 : A.Primitives_lazyAsJsDate(receiver).getFullYear() + 0; }, Primitives_getMonth(receiver) { return receiver.isUtc ? A.Primitives_lazyAsJsDate(receiver).getUTCMonth() + 1 : A.Primitives_lazyAsJsDate(receiver).getMonth() + 1; }, Primitives_getDay(receiver) { return receiver.isUtc ? A.Primitives_lazyAsJsDate(receiver).getUTCDate() + 0 : A.Primitives_lazyAsJsDate(receiver).getDate() + 0; }, Primitives_getHours(receiver) { return receiver.isUtc ? A.Primitives_lazyAsJsDate(receiver).getUTCHours() + 0 : A.Primitives_lazyAsJsDate(receiver).getHours() + 0; }, Primitives_getMinutes(receiver) { return receiver.isUtc ? A.Primitives_lazyAsJsDate(receiver).getUTCMinutes() + 0 : A.Primitives_lazyAsJsDate(receiver).getMinutes() + 0; }, Primitives_getSeconds(receiver) { return receiver.isUtc ? A.Primitives_lazyAsJsDate(receiver).getUTCSeconds() + 0 : A.Primitives_lazyAsJsDate(receiver).getSeconds() + 0; }, Primitives_getMilliseconds(receiver) { return receiver.isUtc ? A.Primitives_lazyAsJsDate(receiver).getUTCMilliseconds() + 0 : A.Primitives_lazyAsJsDate(receiver).getMilliseconds() + 0; }, Primitives_functionNoSuchMethod($function, positionalArguments, namedArguments) { var $arguments, namedArgumentList, t1 = {}; t1.argumentCount = 0; $arguments = []; namedArgumentList = []; t1.argumentCount = positionalArguments.length; B.JSArray_methods.addAll$1($arguments, positionalArguments); t1.names = ""; if (namedArguments != null && namedArguments._length !== 0) namedArguments.forEach$1(0, new A.Primitives_functionNoSuchMethod_closure(t1, namedArgumentList, $arguments)); return J.noSuchMethod$1$($function, new A.JSInvocationMirror(B.Symbol_call, 0, $arguments, namedArgumentList, 0)); }, Primitives_applyFunction($function, positionalArguments, namedArguments) { var t1, argumentCount, jsStub; if (Array.isArray(positionalArguments)) t1 = namedArguments == null || namedArguments._length === 0; else t1 = false; if (t1) { argumentCount = positionalArguments.length; if (argumentCount === 0) { if (!!$function.call$0) return $function.call$0(); } else if (argumentCount === 1) { if (!!$function.call$1) return $function.call$1(positionalArguments[0]); } else if (argumentCount === 2) { if (!!$function.call$2) return $function.call$2(positionalArguments[0], positionalArguments[1]); } else if (argumentCount === 3) { if (!!$function.call$3) return $function.call$3(positionalArguments[0], positionalArguments[1], positionalArguments[2]); } else if (argumentCount === 4) { if (!!$function.call$4) return $function.call$4(positionalArguments[0], positionalArguments[1], positionalArguments[2], positionalArguments[3]); } else if (argumentCount === 5) if (!!$function.call$5) return $function.call$5(positionalArguments[0], positionalArguments[1], positionalArguments[2], positionalArguments[3], positionalArguments[4]); jsStub = $function["call" + "$" + argumentCount]; if (jsStub != null) return jsStub.apply($function, positionalArguments); } return A.Primitives__generalApplyFunction($function, positionalArguments, namedArguments); }, Primitives__generalApplyFunction($function, positionalArguments, namedArguments) { var defaultValuesClosure, t1, defaultValues, interceptor, jsFunction, maxArguments, missingDefaults, keys, _i, defaultValue, used, key, $arguments = Array.isArray(positionalArguments) ? positionalArguments : A.List_List$of(positionalArguments, true, type$.dynamic), argumentCount = $arguments.length, requiredParameterCount = $function.$requiredArgCount; if (argumentCount < requiredParameterCount) return A.Primitives_functionNoSuchMethod($function, $arguments, namedArguments); defaultValuesClosure = $function.$defaultValues; t1 = defaultValuesClosure == null; defaultValues = !t1 ? defaultValuesClosure() : null; interceptor = J.getInterceptor$($function); jsFunction = interceptor["call*"]; if (typeof jsFunction == "string") jsFunction = interceptor[jsFunction]; if (t1) { if (namedArguments != null && namedArguments._length !== 0) return A.Primitives_functionNoSuchMethod($function, $arguments, namedArguments); if (argumentCount === requiredParameterCount) return jsFunction.apply($function, $arguments); return A.Primitives_functionNoSuchMethod($function, $arguments, namedArguments); } if (Array.isArray(defaultValues)) { if (namedArguments != null && namedArguments._length !== 0) return A.Primitives_functionNoSuchMethod($function, $arguments, namedArguments); maxArguments = requiredParameterCount + defaultValues.length; if (argumentCount > maxArguments) return A.Primitives_functionNoSuchMethod($function, $arguments, null); if (argumentCount < maxArguments) { missingDefaults = defaultValues.slice(argumentCount - requiredParameterCount); if ($arguments === positionalArguments) $arguments = A.List_List$of($arguments, true, type$.dynamic); B.JSArray_methods.addAll$1($arguments, missingDefaults); } return jsFunction.apply($function, $arguments); } else { if (argumentCount > requiredParameterCount) return A.Primitives_functionNoSuchMethod($function, $arguments, namedArguments); if ($arguments === positionalArguments) $arguments = A.List_List$of($arguments, true, type$.dynamic); keys = Object.keys(defaultValues); if (namedArguments == null) for (t1 = keys.length, _i = 0; _i < keys.length; keys.length === t1 || (0, A.throwConcurrentModificationError)(keys), ++_i) { defaultValue = defaultValues[A._asString(keys[_i])]; if (B.C__Required === defaultValue) return A.Primitives_functionNoSuchMethod($function, $arguments, namedArguments); B.JSArray_methods.add$1($arguments, defaultValue); } else { for (t1 = keys.length, used = 0, _i = 0; _i < keys.length; keys.length === t1 || (0, A.throwConcurrentModificationError)(keys), ++_i) { key = A._asString(keys[_i]); if (namedArguments.containsKey$1(0, key)) { ++used; B.JSArray_methods.add$1($arguments, namedArguments.$index(0, key)); } else { defaultValue = defaultValues[key]; if (B.C__Required === defaultValue) return A.Primitives_functionNoSuchMethod($function, $arguments, namedArguments); B.JSArray_methods.add$1($arguments, defaultValue); } } if (used !== namedArguments._length) return A.Primitives_functionNoSuchMethod($function, $arguments, namedArguments); } return jsFunction.apply($function, $arguments); } }, iae(argument) { throw A.wrapException(A.argumentErrorValue(argument)); }, ioore(receiver, index) { if (receiver == null) J.get$length$asx(receiver); throw A.wrapException(A.diagnoseIndexError(receiver, index)); }, diagnoseIndexError(indexable, index) { var $length, _s5_ = "index", _null = null; if (!A._isInt(index)) return new A.ArgumentError(true, index, _s5_, _null); $length = A._asInt(J.get$length$asx(indexable)); if (index < 0 || index >= $length) return A.IndexError$(index, indexable, _s5_, _null, $length); return new A.RangeError(_null, _null, true, index, _s5_, "Value not in range"); }, diagnoseRangeError(start, end, $length) { if (start < 0 || start > $length) return A.RangeError$range(start, 0, $length, "start", null); if (end != null) if (end < start || end > $length) return A.RangeError$range(end, start, $length, "end", null); return new A.ArgumentError(true, end, "end", null); }, argumentErrorValue(object) { return new A.ArgumentError(true, object, null, null); }, wrapException(ex) { var wrapper, t1; if (ex == null) ex = new A.NullThrownError(); wrapper = new Error(); wrapper.dartException = ex; t1 = A.toStringWrapper; if ("defineProperty" in Object) { Object.defineProperty(wrapper, "message", {get: t1}); wrapper.name = ""; } else wrapper.toString = t1; return wrapper; }, toStringWrapper() { return J.toString$0$(this.dartException); }, throwExpression(ex) { throw A.wrapException(ex); }, throwConcurrentModificationError(collection) { throw A.wrapException(A.ConcurrentModificationError$(collection)); }, TypeErrorDecoder_extractPattern(message) { var match, $arguments, argumentsExpr, expr, method, receiver; message = A.quoteStringForRegExp(message.replace(String({}), "$receiver$")); match = message.match(/\\\$[a-zA-Z]+\\\$/g); if (match == null) match = A._setArrayType([], type$.JSArray_String); $arguments = match.indexOf("\\$arguments\\$"); argumentsExpr = match.indexOf("\\$argumentsExpr\\$"); expr = match.indexOf("\\$expr\\$"); method = match.indexOf("\\$method\\$"); receiver = match.indexOf("\\$receiver\\$"); return new A.TypeErrorDecoder(message.replace(new RegExp("\\\\\\$arguments\\\\\\$", "g"), "((?:x|[^x])*)").replace(new RegExp("\\\\\\$argumentsExpr\\\\\\$", "g"), "((?:x|[^x])*)").replace(new RegExp("\\\\\\$expr\\\\\\$", "g"), "((?:x|[^x])*)").replace(new RegExp("\\\\\\$method\\\\\\$", "g"), "((?:x|[^x])*)").replace(new RegExp("\\\\\\$receiver\\\\\\$", "g"), "((?:x|[^x])*)"), $arguments, argumentsExpr, expr, method, receiver); }, TypeErrorDecoder_provokeCallErrorOn(expression) { return function($expr$) { var $argumentsExpr$ = "$arguments$"; try { $expr$.$method$($argumentsExpr$); } catch (e) { return e.message; } }(expression); }, TypeErrorDecoder_provokePropertyErrorOn(expression) { return function($expr$) { try { $expr$.$method$; } catch (e) { return e.message; } }(expression); }, JsNoSuchMethodError$(_message, match) { var t1 = match == null, t2 = t1 ? null : match.method; return new A.JsNoSuchMethodError(_message, t2, t1 ? null : match.receiver); }, unwrapException(ex) { var t1; if (ex == null) return new A.NullThrownFromJavaScriptException(ex); if (ex instanceof A.ExceptionAndStackTrace) { t1 = ex.dartException; return A.saveStackTrace(ex, t1 == null ? type$.Object._as(t1) : t1); } if (typeof ex !== "object") return ex; if ("dartException" in ex) return A.saveStackTrace(ex, ex.dartException); return A._unwrapNonDartException(ex); }, saveStackTrace(ex, error) { if (type$.Error._is(error)) if (error.$thrownJsError == null) error.$thrownJsError = ex; return error; }, _unwrapNonDartException(ex) { var message, number, ieErrorCode, t1, nsme, notClosure, nullCall, nullLiteralCall, undefCall, undefLiteralCall, nullProperty, undefProperty, undefLiteralProperty, match, _null = null; if (!("message" in ex)) return ex; message = ex.message; if ("number" in ex && typeof ex.number == "number") { number = ex.number; ieErrorCode = number & 65535; if ((B.JSInt_methods._shrOtherPositive$1(number, 16) & 8191) === 10) switch (ieErrorCode) { case 438: return A.saveStackTrace(ex, A.JsNoSuchMethodError$(A.S(message) + " (Error " + ieErrorCode + ")", _null)); case 445: case 5007: t1 = A.S(message); return A.saveStackTrace(ex, new A.NullError(t1 + " (Error " + ieErrorCode + ")", _null)); } } if (ex instanceof TypeError) { nsme = $.$get$TypeErrorDecoder_noSuchMethodPattern(); notClosure = $.$get$TypeErrorDecoder_notClosurePattern(); nullCall = $.$get$TypeErrorDecoder_nullCallPattern(); nullLiteralCall = $.$get$TypeErrorDecoder_nullLiteralCallPattern(); undefCall = $.$get$TypeErrorDecoder_undefinedCallPattern(); undefLiteralCall = $.$get$TypeErrorDecoder_undefinedLiteralCallPattern(); nullProperty = $.$get$TypeErrorDecoder_nullPropertyPattern(); $.$get$TypeErrorDecoder_nullLiteralPropertyPattern(); undefProperty = $.$get$TypeErrorDecoder_undefinedPropertyPattern(); undefLiteralProperty = $.$get$TypeErrorDecoder_undefinedLiteralPropertyPattern(); match = nsme.matchTypeError$1(message); if (match != null) return A.saveStackTrace(ex, A.JsNoSuchMethodError$(A._asString(message), match)); else { match = notClosure.matchTypeError$1(message); if (match != null) { match.method = "call"; return A.saveStackTrace(ex, A.JsNoSuchMethodError$(A._asString(message), match)); } else { match = nullCall.matchTypeError$1(message); if (match == null) { match = nullLiteralCall.matchTypeError$1(message); if (match == null) { match = undefCall.matchTypeError$1(message); if (match == null) { match = undefLiteralCall.matchTypeError$1(message); if (match == null) { match = nullProperty.matchTypeError$1(message); if (match == null) { match = nullLiteralCall.matchTypeError$1(message); if (match == null) { match = undefProperty.matchTypeError$1(message); if (match == null) { match = undefLiteralProperty.matchTypeError$1(message); t1 = match != null; } else t1 = true; } else t1 = true; } else t1 = true; } else t1 = true; } else t1 = true; } else t1 = true; } else t1 = true; if (t1) { A._asString(message); return A.saveStackTrace(ex, new A.NullError(message, match == null ? _null : match.method)); } } } return A.saveStackTrace(ex, new A.UnknownJsTypeError(typeof message == "string" ? message : "")); } if (ex instanceof RangeError) { if (typeof message == "string" && message.indexOf("call stack") !== -1) return new A.StackOverflowError(); message = function(ex) { try { return String(ex); } catch (e) { } return null; }(ex); return A.saveStackTrace(ex, new A.ArgumentError(false, _null, _null, typeof message == "string" ? message.replace(/^RangeError:\s*/, "") : message)); } if (typeof InternalError == "function" && ex instanceof InternalError) if (typeof message == "string" && message === "too much recursion") return new A.StackOverflowError(); return ex; }, getTraceFromException(exception) { var trace; if (exception instanceof A.ExceptionAndStackTrace) return exception.stackTrace; if (exception == null) return new A._StackTrace(exception); trace = exception.$cachedTrace; if (trace != null) return trace; return exception.$cachedTrace = new A._StackTrace(exception); }, objectHashCode(object) { if (object == null || typeof object != "object") return J.get$hashCode$(object); else return A.Primitives_objectHashCode(object); }, fillLiteralMap(keyValuePairs, result) { var index, index0, index1, $length = keyValuePairs.length; for (index = 0; index < $length; index = index1) { index0 = index + 1; index1 = index0 + 1; result.$indexSet(0, keyValuePairs[index], keyValuePairs[index0]); } return result; }, invokeClosure(closure, numberOfArguments, arg1, arg2, arg3, arg4) { type$.Function._as(closure); switch (A._asInt(numberOfArguments)) { case 0: return closure.call$0(); case 1: return closure.call$1(arg1); case 2: return closure.call$2(arg1, arg2); case 3: return closure.call$3(arg1, arg2, arg3); case 4: return closure.call$4(arg1, arg2, arg3, arg4); } throw A.wrapException(A.Exception_Exception("Unsupported number of arguments for wrapped closure")); }, convertDartClosureToJS(closure, arity) { var $function = closure.$identity; if (!!$function) return $function; $function = function(closure, arity, invoke) { return function(a1, a2, a3, a4) { return invoke(closure, arity, a1, a2, a3, a4); }; }(closure, arity, A.invokeClosure); closure.$identity = $function; return $function; }, Closure_fromTearOff(parameters) { var $prototype, $constructor, t2, trampoline, applyTrampoline, i, stub, stub0, stubName, stubCallName, container = parameters.co, isStatic = parameters.iS, isIntercepted = parameters.iI, needsDirectAccess = parameters.nDA, applyTrampolineIndex = parameters.aI, funsOrNames = parameters.fs, callNames = parameters.cs, $name = funsOrNames[0], callName = callNames[0], $function = container[$name], t1 = parameters.fT; t1.toString; $prototype = isStatic ? Object.create(new A.StaticClosure().constructor.prototype) : Object.create(new A.BoundClosure(null, null).constructor.prototype); $prototype.$initialize = $prototype.constructor; if (isStatic) $constructor = function static_tear_off() { this.$initialize(); }; else $constructor = function tear_off(a, b) { this.$initialize(a, b); }; $prototype.constructor = $constructor; $constructor.prototype = $prototype; $prototype.$_name = $name; $prototype.$_target = $function; t2 = !isStatic; if (t2) trampoline = A.Closure_forwardCallTo($name, $function, isIntercepted, needsDirectAccess); else { $prototype.$static_name = $name; trampoline = $function; } $prototype.$signature = A.Closure__computeSignatureFunctionNewRti(t1, isStatic, isIntercepted); $prototype[callName] = trampoline; for (applyTrampoline = trampoline, i = 1; i < funsOrNames.length; ++i) { stub = funsOrNames[i]; if (typeof stub == "string") { stub0 = container[stub]; stubName = stub; stub = stub0; } else stubName = ""; stubCallName = callNames[i]; if (stubCallName != null) { if (t2) stub = A.Closure_forwardCallTo(stubName, stub, isIntercepted, needsDirectAccess); $prototype[stubCallName] = stub; } if (i === applyTrampolineIndex) applyTrampoline = stub; } $prototype["call*"] = applyTrampoline; $prototype.$requiredArgCount = parameters.rC; $prototype.$defaultValues = parameters.dV; return $constructor; }, Closure__computeSignatureFunctionNewRti(functionType, isStatic, isIntercepted) { if (typeof functionType == "number") return functionType; if (typeof functionType == "string") { if (isStatic) throw A.wrapException("Cannot compute signature for static tearoff."); return function(recipe, evalOnReceiver) { return function() { return evalOnReceiver(this, recipe); }; }(functionType, A.BoundClosure_evalRecipe); } throw A.wrapException("Error in functionType of tearoff"); }, Closure_cspForwardCall(arity, needsDirectAccess, stubName, $function) { var getReceiver = A.BoundClosure_receiverOf; switch (needsDirectAccess ? -1 : arity) { case 0: return function(entry, receiverOf) { return function() { return receiverOf(this)[entry](); }; }(stubName, getReceiver); case 1: return function(entry, receiverOf) { return function(a) { return receiverOf(this)[entry](a); }; }(stubName, getReceiver); case 2: return function(entry, receiverOf) { return function(a, b) { return receiverOf(this)[entry](a, b); }; }(stubName, getReceiver); case 3: return function(entry, receiverOf) { return function(a, b, c) { return receiverOf(this)[entry](a, b, c); }; }(stubName, getReceiver); case 4: return function(entry, receiverOf) { return function(a, b, c, d) { return receiverOf(this)[entry](a, b, c, d); }; }(stubName, getReceiver); case 5: return function(entry, receiverOf) { return function(a, b, c, d, e) { return receiverOf(this)[entry](a, b, c, d, e); }; }(stubName, getReceiver); default: return function(f, receiverOf) { return function() { return f.apply(receiverOf(this), arguments); }; }($function, getReceiver); } }, Closure_forwardCallTo(stubName, $function, isIntercepted, needsDirectAccess) { var arity, t1; if (isIntercepted) return A.Closure_forwardInterceptedCallTo(stubName, $function, needsDirectAccess); arity = $function.length; t1 = A.Closure_cspForwardCall(arity, needsDirectAccess, stubName, $function); return t1; }, Closure_cspForwardInterceptedCall(arity, needsDirectAccess, stubName, $function) { var getReceiver = A.BoundClosure_receiverOf, getInterceptor = A.BoundClosure_interceptorOf; switch (needsDirectAccess ? -1 : arity) { case 0: throw A.wrapException(new A.RuntimeError("Intercepted function with no arguments.")); case 1: return function(entry, interceptorOf, receiverOf) { return function() { return interceptorOf(this)[entry](receiverOf(this)); }; }(stubName, getInterceptor, getReceiver); case 2: return function(entry, interceptorOf, receiverOf) { return function(a) { return interceptorOf(this)[entry](receiverOf(this), a); }; }(stubName, getInterceptor, getReceiver); case 3: return function(entry, interceptorOf, receiverOf) { return function(a, b) { return interceptorOf(this)[entry](receiverOf(this), a, b); }; }(stubName, getInterceptor, getReceiver); case 4: return function(entry, interceptorOf, receiverOf) { return function(a, b, c) { return interceptorOf(this)[entry](receiverOf(this), a, b, c); }; }(stubName, getInterceptor, getReceiver); case 5: return function(entry, interceptorOf, receiverOf) { return function(a, b, c, d) { return interceptorOf(this)[entry](receiverOf(this), a, b, c, d); }; }(stubName, getInterceptor, getReceiver); case 6: return function(entry, interceptorOf, receiverOf) { return function(a, b, c, d, e) { return interceptorOf(this)[entry](receiverOf(this), a, b, c, d, e); }; }(stubName, getInterceptor, getReceiver); default: return function(f, interceptorOf, receiverOf) { return function() { var a = [receiverOf(this)]; Array.prototype.push.apply(a, arguments); return f.apply(interceptorOf(this), a); }; }($function, getInterceptor, getReceiver); } }, Closure_forwardInterceptedCallTo(stubName, $function, needsDirectAccess) { var arity, t1; if ($.BoundClosure__interceptorFieldNameCache == null) $.BoundClosure__interceptorFieldNameCache = A.BoundClosure__computeFieldNamed("interceptor"); if ($.BoundClosure__receiverFieldNameCache == null) $.BoundClosure__receiverFieldNameCache = A.BoundClosure__computeFieldNamed("receiver"); arity = $function.length; t1 = A.Closure_cspForwardInterceptedCall(arity, needsDirectAccess, stubName, $function); return t1; }, closureFromTearOff(parameters) { return A.Closure_fromTearOff(parameters); }, BoundClosure_evalRecipe(closure, recipe) { return A._Universe_evalInEnvironment(init.typeUniverse, A.instanceType(closure._receiver), recipe); }, BoundClosure_receiverOf(closure) { return closure._receiver; }, BoundClosure_interceptorOf(closure) { return closure._interceptor; }, BoundClosure__computeFieldNamed(fieldName) { var t1, i, $name, template = new A.BoundClosure("receiver", "interceptor"), names = J.JSArray_markFixedList(Object.getOwnPropertyNames(template), type$.nullable_Object); for (t1 = names.length, i = 0; i < t1; ++i) { $name = names[i]; if (template[$name] === fieldName) return $name; } throw A.wrapException(A.ArgumentError$("Field name " + fieldName + " not found.", null)); }, boolConversionCheck(value) { if (value == null) A.assertThrow("boolean expression must not be null"); return value; }, assertThrow(message) { throw A.wrapException(new A._AssertionError(message)); }, throwCyclicInit(staticName) { throw A.wrapException(new A.CyclicInitializationError(staticName)); }, getIsolateAffinityTag($name) { return init.getIsolateTag($name); }, LinkedHashMapKeyIterator$(_map, _modifications, $E) { var t1 = new A.LinkedHashMapKeyIterator(_map, _modifications, $E._eval$1("LinkedHashMapKeyIterator<0>")); t1._cell = _map._first; return t1; }, defineProperty(obj, property, value) { Object.defineProperty(obj, property, {value: value, enumerable: false, writable: true, configurable: true}); }, lookupAndCacheInterceptor(obj) { var interceptor, interceptorClass, altTag, mark, t1, tag = A._asString($.getTagFunction.call$1(obj)), record = $.dispatchRecordsForInstanceTags[tag]; if (record != null) { Object.defineProperty(obj, init.dispatchPropertyName, {value: record, enumerable: false, writable: true, configurable: true}); return record.i; } interceptor = $.interceptorsForUncacheableTags[tag]; if (interceptor != null) return interceptor; interceptorClass = init.interceptorsByTag[tag]; if (interceptorClass == null) { altTag = A._asStringQ($.alternateTagFunction.call$2(obj, tag)); if (altTag != null) { record = $.dispatchRecordsForInstanceTags[altTag]; if (record != null) { Object.defineProperty(obj, init.dispatchPropertyName, {value: record, enumerable: false, writable: true, configurable: true}); return record.i; } interceptor = $.interceptorsForUncacheableTags[altTag]; if (interceptor != null) return interceptor; interceptorClass = init.interceptorsByTag[altTag]; tag = altTag; } } if (interceptorClass == null) return null; interceptor = interceptorClass.prototype; mark = tag[0]; if (mark === "!") { record = A.makeLeafDispatchRecord(interceptor); $.dispatchRecordsForInstanceTags[tag] = record; Object.defineProperty(obj, init.dispatchPropertyName, {value: record, enumerable: false, writable: true, configurable: true}); return record.i; } if (mark === "~") { $.interceptorsForUncacheableTags[tag] = interceptor; return interceptor; } if (mark === "-") { t1 = A.makeLeafDispatchRecord(interceptor); Object.defineProperty(Object.getPrototypeOf(obj), init.dispatchPropertyName, {value: t1, enumerable: false, writable: true, configurable: true}); return t1.i; } if (mark === "+") return A.patchInteriorProto(obj, interceptor); if (mark === "*") throw A.wrapException(A.UnimplementedError$(tag)); if (init.leafTags[tag] === true) { t1 = A.makeLeafDispatchRecord(interceptor); Object.defineProperty(Object.getPrototypeOf(obj), init.dispatchPropertyName, {value: t1, enumerable: false, writable: true, configurable: true}); return t1.i; } else return A.patchInteriorProto(obj, interceptor); }, patchInteriorProto(obj, interceptor) { var proto = Object.getPrototypeOf(obj); Object.defineProperty(proto, init.dispatchPropertyName, {value: J.makeDispatchRecord(interceptor, proto, null, null), enumerable: false, writable: true, configurable: true}); return interceptor; }, makeLeafDispatchRecord(interceptor) { return J.makeDispatchRecord(interceptor, false, null, !!interceptor.$isJavaScriptIndexingBehavior); }, makeDefaultDispatchRecord(tag, interceptorClass, proto) { var interceptor = interceptorClass.prototype; if (init.leafTags[tag] === true) return A.makeLeafDispatchRecord(interceptor); else return J.makeDispatchRecord(interceptor, proto, null, null); }, initNativeDispatch() { if (true === $.initNativeDispatchFlag) return; $.initNativeDispatchFlag = true; A.initNativeDispatchContinue(); }, initNativeDispatchContinue() { var map, tags, fun, i, tag, proto, record, interceptorClass; $.dispatchRecordsForInstanceTags = Object.create(null); $.interceptorsForUncacheableTags = Object.create(null); A.initHooks(); map = init.interceptorsByTag; tags = Object.getOwnPropertyNames(map); if (typeof window != "undefined") { window; fun = function() { }; for (i = 0; i < tags.length; ++i) { tag = tags[i]; proto = $.prototypeForTagFunction.call$1(tag); if (proto != null) { record = A.makeDefaultDispatchRecord(tag, map[tag], proto); if (record != null) { Object.defineProperty(proto, init.dispatchPropertyName, {value: record, enumerable: false, writable: true, configurable: true}); fun.prototype = proto; } } } } for (i = 0; i < tags.length; ++i) { tag = tags[i]; if (/^[A-Za-z_]/.test(tag)) { interceptorClass = map[tag]; map["!" + tag] = interceptorClass; map["~" + tag] = interceptorClass; map["-" + tag] = interceptorClass; map["+" + tag] = interceptorClass; map["*" + tag] = interceptorClass; } } }, initHooks() { var transformers, i, transformer, getTag, getUnknownTag, prototypeForTag, hooks = B.C_JS_CONST0(); hooks = A.applyHooksTransformer(B.C_JS_CONST1, A.applyHooksTransformer(B.C_JS_CONST2, A.applyHooksTransformer(B.C_JS_CONST3, A.applyHooksTransformer(B.C_JS_CONST3, A.applyHooksTransformer(B.C_JS_CONST4, A.applyHooksTransformer(B.C_JS_CONST5, A.applyHooksTransformer(B.C_JS_CONST6(B.C_JS_CONST), hooks))))))); if (typeof dartNativeDispatchHooksTransformer != "undefined") { transformers = dartNativeDispatchHooksTransformer; if (typeof transformers == "function") transformers = [transformers]; if (transformers.constructor == Array) for (i = 0; i < transformers.length; ++i) { transformer = transformers[i]; if (typeof transformer == "function") hooks = transformer(hooks) || hooks; } } getTag = hooks.getTag; getUnknownTag = hooks.getUnknownTag; prototypeForTag = hooks.prototypeForTag; $.getTagFunction = new A.initHooks_closure(getTag); $.alternateTagFunction = new A.initHooks_closure0(getUnknownTag); $.prototypeForTagFunction = new A.initHooks_closure1(prototypeForTag); }, applyHooksTransformer(transformer, hooks) { return transformer(hooks) || hooks; }, quoteStringForRegExp(string) { if (/[[\]{}()*+?.\\^$|]/.test(string)) return string.replace(/[[\]{}()*+?.\\^$|]/g, "\\$&"); return string; }, ConstantMapView: function ConstantMapView(t0, t1) { this._collection$_map = t0; this.$ti = t1; }, ConstantMap: function ConstantMap() { }, ConstantStringMap: function ConstantStringMap(t0, t1, t2, t3) { var _ = this; _._length = t0; _._jsObject = t1; _._keys = t2; _.$ti = t3; }, _ConstantMapKeyIterable: function _ConstantMapKeyIterable(t0, t1) { this._map = t0; this.$ti = t1; }, GeneralConstantMap: function GeneralConstantMap(t0, t1) { this._jsData = t0; this.$ti = t1; }, GeneralConstantMap__typeTest_closure: function GeneralConstantMap__typeTest_closure(t0) { this.T = t0; }, Instantiation: function Instantiation() { }, Instantiation1: function Instantiation1(t0, t1) { this._genericClosure = t0; this.$ti = t1; }, JSInvocationMirror: function JSInvocationMirror(t0, t1, t2, t3, t4) { var _ = this; _._memberName = t0; _.__js_helper$_kind = t1; _._arguments = t2; _._namedArgumentNames = t3; _._typeArgumentCount = t4; }, Primitives_functionNoSuchMethod_closure: function Primitives_functionNoSuchMethod_closure(t0, t1, t2) { this._box_0 = t0; this.namedArgumentList = t1; this.$arguments = t2; }, TypeErrorDecoder: function TypeErrorDecoder(t0, t1, t2, t3, t4, t5) { var _ = this; _._pattern = t0; _._arguments = t1; _._argumentsExpr = t2; _._expr = t3; _._method = t4; _._receiver = t5; }, NullError: function NullError(t0, t1) { this.__js_helper$_message = t0; this._method = t1; }, JsNoSuchMethodError: function JsNoSuchMethodError(t0, t1, t2) { this.__js_helper$_message = t0; this._method = t1; this._receiver = t2; }, UnknownJsTypeError: function UnknownJsTypeError(t0) { this.__js_helper$_message = t0; }, NullThrownFromJavaScriptException: function NullThrownFromJavaScriptException(t0) { this._irritant = t0; }, ExceptionAndStackTrace: function ExceptionAndStackTrace(t0, t1) { this.dartException = t0; this.stackTrace = t1; }, _StackTrace: function _StackTrace(t0) { this._exception = t0; this._trace = null; }, Closure: function Closure() { }, Closure0Args: function Closure0Args() { }, Closure2Args: function Closure2Args() { }, TearOffClosure: function TearOffClosure() { }, StaticClosure: function StaticClosure() { }, BoundClosure: function BoundClosure(t0, t1) { this._receiver = t0; this._interceptor = t1; }, RuntimeError: function RuntimeError(t0) { this.message = t0; }, _AssertionError: function _AssertionError(t0) { this.message = t0; }, _Required: function _Required() { }, JsLinkedHashMap: function JsLinkedHashMap(t0) { var _ = this; _._length = 0; _._last = _._first = _.__js_helper$_rest = _._nums = _._strings = null; _._modifications = 0; _.$ti = t0; }, JsLinkedHashMap_values_closure: function JsLinkedHashMap_values_closure(t0) { this.$this = t0; }, LinkedHashMapCell: function LinkedHashMapCell(t0, t1) { this.hashMapCellKey = t0; this.hashMapCellValue = t1; this._next = null; }, LinkedHashMapKeyIterable: function LinkedHashMapKeyIterable(t0, t1) { this._map = t0; this.$ti = t1; }, LinkedHashMapKeyIterator: function LinkedHashMapKeyIterator(t0, t1, t2) { var _ = this; _._map = t0; _._modifications = t1; _.__js_helper$_current = _._cell = null; _.$ti = t2; }, initHooks_closure: function initHooks_closure(t0) { this.getTag = t0; }, initHooks_closure0: function initHooks_closure0(t0) { this.getUnknownTag = t0; }, initHooks_closure1: function initHooks_closure1(t0) { this.prototypeForTag = t0; }, throwLateFieldADI(fieldName) { return A.throwExpression(new A.LateError("Field '" + fieldName + "' has been assigned during initialization.")); }, _Cell$named(_name) { var t1 = new A._Cell(_name); return t1._value = t1; }, _lateReadCheck(value, $name) { if (value === $) throw A.wrapException(A.LateError$fieldNI($name)); return value; }, _Cell: function _Cell(t0) { this.__late_helper$_name = t0; this._value = null; }, _checkViewArguments(buffer, offsetInBytes, $length) { }, _ensureNativeList(list) { return list; }, NativeFloat32List_NativeFloat32List($length) { return new Float32Array($length); }, NativeFloat32List_NativeFloat32List$view(buffer, offsetInBytes, $length) { A._checkViewArguments(buffer, offsetInBytes, $length); $length = B.JSInt_methods._tdivFast$1(buffer.byteLength - offsetInBytes, 4); return new Float32Array(buffer, offsetInBytes, $length); }, NativeInt32List_NativeInt32List($length) { return new Int32Array($length); }, NativeInt8List_NativeInt8List($length) { return new Int8Array($length); }, NativeUint16List_NativeUint16List($length) { return new Uint16Array($length); }, NativeUint32List_NativeUint32List($length) { return new Uint32Array($length); }, NativeUint32List_NativeUint32List$view(buffer, offsetInBytes, $length) { A._checkViewArguments(buffer, offsetInBytes, $length); $length = B.JSInt_methods._tdivFast$1(buffer.byteLength - offsetInBytes, 4); return new Uint32Array(buffer, offsetInBytes, $length); }, NativeUint8List_NativeUint8List($length) { return new Uint8Array($length); }, NativeUint8List_NativeUint8List$view(buffer, offsetInBytes, $length) { A._checkViewArguments(buffer, offsetInBytes, $length); return $length == null ? new Uint8Array(buffer, offsetInBytes) : new Uint8Array(buffer, offsetInBytes, $length); }, _checkValidIndex(index, list, $length) { if (index >>> 0 !== index || index >= $length) throw A.wrapException(A.diagnoseIndexError(list, index)); }, _checkValidRange(start, end, $length) { var t1; if (!(start >>> 0 !== start)) if (end == null) t1 = start > $length; else t1 = end >>> 0 !== end || start > end || end > $length; else t1 = true; if (t1) throw A.wrapException(A.diagnoseRangeError(start, end, $length)); if (end == null) return $length; return end; }, NativeTypedData: function NativeTypedData() { }, NativeTypedArray: function NativeTypedArray() { }, NativeTypedArrayOfDouble: function NativeTypedArrayOfDouble() { }, NativeTypedArrayOfInt: function NativeTypedArrayOfInt() { }, NativeFloat32List: function NativeFloat32List() { }, NativeFloat64List: function NativeFloat64List() { }, NativeInt16List: function NativeInt16List() { }, NativeInt32List: function NativeInt32List() { }, NativeInt8List: function NativeInt8List() { }, NativeUint16List: function NativeUint16List() { }, NativeUint32List: function NativeUint32List() { }, NativeUint8ClampedList: function NativeUint8ClampedList() { }, NativeUint8List: function NativeUint8List() { }, _NativeTypedArrayOfDouble_NativeTypedArray_ListMixin: function _NativeTypedArrayOfDouble_NativeTypedArray_ListMixin() { }, _NativeTypedArrayOfDouble_NativeTypedArray_ListMixin_FixedLengthListMixin: function _NativeTypedArrayOfDouble_NativeTypedArray_ListMixin_FixedLengthListMixin() { }, _NativeTypedArrayOfInt_NativeTypedArray_ListMixin: function _NativeTypedArrayOfInt_NativeTypedArray_ListMixin() { }, _NativeTypedArrayOfInt_NativeTypedArray_ListMixin_FixedLengthListMixin: function _NativeTypedArrayOfInt_NativeTypedArray_ListMixin_FixedLengthListMixin() { }, Rti__getQuestionFromStar(universe, rti) { var question = rti._precomputed1; return question == null ? rti._precomputed1 = A._Universe__lookupQuestionRti(universe, rti._primary, true) : question; }, Rti__getFutureFromFutureOr(universe, rti) { var future = rti._precomputed1; return future == null ? rti._precomputed1 = A._Universe__lookupInterfaceRti(universe, "Future", [rti._primary]) : future; }, Rti__isUnionOfFunctionType(rti) { var kind = rti._kind; if (kind === 6 || kind === 7 || kind === 8) return A.Rti__isUnionOfFunctionType(rti._primary); return kind === 11 || kind === 12; }, Rti__getCanonicalRecipe(rti) { return rti._canonicalRecipe; }, findType(recipe) { return A._Universe_eval(init.typeUniverse, recipe, false); }, instantiatedGenericFunctionType(genericFunctionRti, instantiationRti) { var t1, cache, key, probe, rti; if (genericFunctionRti == null) return null; t1 = instantiationRti._rest; cache = genericFunctionRti._bindCache; if (cache == null) cache = genericFunctionRti._bindCache = new Map(); key = instantiationRti._canonicalRecipe; probe = cache.get(key); if (probe != null) return probe; rti = A._substitute(init.typeUniverse, genericFunctionRti._primary, t1, 0); cache.set(key, rti); return rti; }, _substitute(universe, rti, typeArguments, depth) { var baseType, substitutedBaseType, interfaceTypeArguments, substitutedInterfaceTypeArguments, base, substitutedBase, $arguments, substitutedArguments, returnType, substitutedReturnType, functionParameters, substitutedFunctionParameters, bounds, substitutedBounds, index, argument, kind = rti._kind; switch (kind) { case 5: case 1: case 2: case 3: case 4: return rti; case 6: baseType = rti._primary; substitutedBaseType = A._substitute(universe, baseType, typeArguments, depth); if (substitutedBaseType === baseType) return rti; return A._Universe__lookupStarRti(universe, substitutedBaseType, true); case 7: baseType = rti._primary; substitutedBaseType = A._substitute(universe, baseType, typeArguments, depth); if (substitutedBaseType === baseType) return rti; return A._Universe__lookupQuestionRti(universe, substitutedBaseType, true); case 8: baseType = rti._primary; substitutedBaseType = A._substitute(universe, baseType, typeArguments, depth); if (substitutedBaseType === baseType) return rti; return A._Universe__lookupFutureOrRti(universe, substitutedBaseType, true); case 9: interfaceTypeArguments = rti._rest; substitutedInterfaceTypeArguments = A._substituteArray(universe, interfaceTypeArguments, typeArguments, depth); if (substitutedInterfaceTypeArguments === interfaceTypeArguments) return rti; return A._Universe__lookupInterfaceRti(universe, rti._primary, substitutedInterfaceTypeArguments); case 10: base = rti._primary; substitutedBase = A._substitute(universe, base, typeArguments, depth); $arguments = rti._rest; substitutedArguments = A._substituteArray(universe, $arguments, typeArguments, depth); if (substitutedBase === base && substitutedArguments === $arguments) return rti; return A._Universe__lookupBindingRti(universe, substitutedBase, substitutedArguments); case 11: returnType = rti._primary; substitutedReturnType = A._substitute(universe, returnType, typeArguments, depth); functionParameters = rti._rest; substitutedFunctionParameters = A._substituteFunctionParameters(universe, functionParameters, typeArguments, depth); if (substitutedReturnType === returnType && substitutedFunctionParameters === functionParameters) return rti; return A._Universe__lookupFunctionRti(universe, substitutedReturnType, substitutedFunctionParameters); case 12: bounds = rti._rest; depth += bounds.length; substitutedBounds = A._substituteArray(universe, bounds, typeArguments, depth); base = rti._primary; substitutedBase = A._substitute(universe, base, typeArguments, depth); if (substitutedBounds === bounds && substitutedBase === base) return rti; return A._Universe__lookupGenericFunctionRti(universe, substitutedBase, substitutedBounds, true); case 13: index = rti._primary; if (index < depth) return rti; argument = typeArguments[index - depth]; if (argument == null) return rti; return argument; default: throw A.wrapException(A.AssertionError$("Attempted to substitute unexpected RTI kind " + kind)); } }, _substituteArray(universe, rtiArray, typeArguments, depth) { var changed, i, rti, substitutedRti, $length = rtiArray.length, result = A._Utils_newArrayOrEmpty($length); for (changed = false, i = 0; i < $length; ++i) { rti = rtiArray[i]; substitutedRti = A._substitute(universe, rti, typeArguments, depth); if (substitutedRti !== rti) changed = true; result[i] = substitutedRti; } return changed ? result : rtiArray; }, _substituteNamed(universe, namedArray, typeArguments, depth) { var changed, i, t1, t2, rti, substitutedRti, $length = namedArray.length, result = A._Utils_newArrayOrEmpty($length); for (changed = false, i = 0; i < $length; i += 3) { t1 = namedArray[i]; t2 = namedArray[i + 1]; rti = namedArray[i + 2]; substitutedRti = A._substitute(universe, rti, typeArguments, depth); if (substitutedRti !== rti) changed = true; result.splice(i, 3, t1, t2, substitutedRti); } return changed ? result : namedArray; }, _substituteFunctionParameters(universe, functionParameters, typeArguments, depth) { var result, requiredPositional = functionParameters._requiredPositional, substitutedRequiredPositional = A._substituteArray(universe, requiredPositional, typeArguments, depth), optionalPositional = functionParameters._optionalPositional, substitutedOptionalPositional = A._substituteArray(universe, optionalPositional, typeArguments, depth), named = functionParameters._named, substitutedNamed = A._substituteNamed(universe, named, typeArguments, depth); if (substitutedRequiredPositional === requiredPositional && substitutedOptionalPositional === optionalPositional && substitutedNamed === named) return functionParameters; result = new A._FunctionParameters(); result._requiredPositional = substitutedRequiredPositional; result._optionalPositional = substitutedOptionalPositional; result._named = substitutedNamed; return result; }, _setArrayType(target, rti) { target[init.arrayRti] = rti; return target; }, closureFunctionType(closure) { var signature = closure.$signature; if (signature != null) { if (typeof signature == "number") return A.getTypeFromTypesTable(signature); return closure.$signature(); } return null; }, instanceOrFunctionType(object, testRti) { var rti; if (A.Rti__isUnionOfFunctionType(testRti)) if (object instanceof A.Closure) { rti = A.closureFunctionType(object); if (rti != null) return rti; } return A.instanceType(object); }, instanceType(object) { var rti; if (object instanceof A.Object) { rti = object.$ti; return rti != null ? rti : A._instanceTypeFromConstructor(object); } if (Array.isArray(object)) return A._arrayInstanceType(object); return A._instanceTypeFromConstructor(J.getInterceptor$(object)); }, _arrayInstanceType(object) { var rti = object[init.arrayRti], defaultRti = type$.JSArray_dynamic; if (rti == null) return defaultRti; if (rti.constructor !== defaultRti.constructor) return defaultRti; return rti; }, _instanceType(object) { var rti = object.$ti; return rti != null ? rti : A._instanceTypeFromConstructor(object); }, _instanceTypeFromConstructor(instance) { var $constructor = instance.constructor, probe = $constructor.$ccache; if (probe != null) return probe; return A._instanceTypeFromConstructorMiss(instance, $constructor); }, _instanceTypeFromConstructorMiss(instance, $constructor) { var effectiveConstructor = instance instanceof A.Closure ? instance.__proto__.__proto__.constructor : $constructor, rti = A._Universe_findErasedType(init.typeUniverse, effectiveConstructor.name); $constructor.$ccache = rti; return rti; }, getTypeFromTypesTable(index) { var rti, table = init.types, type = table[index]; if (typeof type == "string") { rti = A._Universe_eval(init.typeUniverse, type, false); table[index] = rti; return rti; } return type; }, getRuntimeType(object) { var rti = object instanceof A.Closure ? A.closureFunctionType(object) : null; return A.createRuntimeType(rti == null ? A.instanceType(object) : rti); }, createRuntimeType(rti) { var recipe, starErasedRecipe, starErasedRti, type = rti._cachedRuntimeType; if (type != null) return type; recipe = rti._canonicalRecipe; starErasedRecipe = recipe.replace(/\*/g, ""); if (starErasedRecipe === recipe) return rti._cachedRuntimeType = new A._Type(rti); starErasedRti = A._Universe_eval(init.typeUniverse, starErasedRecipe, true); type = starErasedRti._cachedRuntimeType; return rti._cachedRuntimeType = type == null ? starErasedRti._cachedRuntimeType = new A._Type(starErasedRti) : type; }, typeLiteral(recipe) { return A.createRuntimeType(A._Universe_eval(init.typeUniverse, recipe, false)); }, _installSpecializedIsTest(object) { var t1, unstarred, isFn, $name, testRti = this; if (testRti === type$.Object) return A._finishIsFn(testRti, object, A._isObject); if (!A.isStrongTopType(testRti)) if (!(testRti === type$.legacy_Object)) t1 = false; else t1 = true; else t1 = true; if (t1) return A._finishIsFn(testRti, object, A._isTop); t1 = testRti._kind; unstarred = t1 === 6 ? testRti._primary : testRti; if (unstarred === type$.int) isFn = A._isInt; else if (unstarred === type$.double || unstarred === type$.num) isFn = A._isNum; else if (unstarred === type$.String) isFn = A._isString; else isFn = unstarred === type$.bool ? A._isBool : null; if (isFn != null) return A._finishIsFn(testRti, object, isFn); if (unstarred._kind === 9) { $name = unstarred._primary; if (unstarred._rest.every(A.isTopType)) { testRti._specializedTestResource = "$is" + $name; if ($name === "List") return A._finishIsFn(testRti, object, A._isListTestViaProperty); return A._finishIsFn(testRti, object, A._isTestViaProperty); } } else if (t1 === 7) return A._finishIsFn(testRti, object, A._generalNullableIsTestImplementation); return A._finishIsFn(testRti, object, A._generalIsTestImplementation); }, _finishIsFn(testRti, object, isFn) { testRti._is = isFn; return testRti._is(object); }, _installSpecializedAsCheck(object) { var t1, testRti = this, asFn = A._generalAsCheckImplementation; if (!A.isStrongTopType(testRti)) if (!(testRti === type$.legacy_Object)) t1 = false; else t1 = true; else t1 = true; if (t1) asFn = A._asTop; else if (testRti === type$.Object) asFn = A._asObject; else { t1 = A.isNullable(testRti); if (t1) asFn = A._generalNullableAsCheckImplementation; } testRti._as = asFn; return testRti._as(object); }, _nullIs(testRti) { var t1, kind = testRti._kind; if (!A.isStrongTopType(testRti)) if (!(testRti === type$.legacy_Object)) if (!(testRti === type$.legacy_Never)) if (kind !== 7) t1 = kind === 8 && A._nullIs(testRti._primary) || testRti === type$.Null || testRti === type$.JSNull; else t1 = true; else t1 = true; else t1 = true; else t1 = true; return t1; }, _generalIsTestImplementation(object) { var testRti = this; if (object == null) return A._nullIs(testRti); return A._isSubtype(init.typeUniverse, A.instanceOrFunctionType(object, testRti), null, testRti, null); }, _generalNullableIsTestImplementation(object) { if (object == null) return true; return this._primary._is(object); }, _isTestViaProperty(object) { var tag, testRti = this; if (object == null) return A._nullIs(testRti); tag = testRti._specializedTestResource; if (object instanceof A.Object) return !!object[tag]; return !!J.getInterceptor$(object)[tag]; }, _isListTestViaProperty(object) { var tag, testRti = this; if (object == null) return A._nullIs(testRti); if (typeof object != "object") return false; if (Array.isArray(object)) return true; tag = testRti._specializedTestResource; if (object instanceof A.Object) return !!object[tag]; return !!J.getInterceptor$(object)[tag]; }, _generalAsCheckImplementation(object) { var t1, testRti = this; if (object == null) { t1 = A.isNullable(testRti); if (t1) return object; } else if (testRti._is(object)) return object; A._failedAsCheck(object, testRti); }, _generalNullableAsCheckImplementation(object) { var testRti = this; if (object == null) return object; else if (testRti._is(object)) return object; A._failedAsCheck(object, testRti); }, _failedAsCheck(object, testRti) { throw A.wrapException(A._TypeError$fromMessage(A._Error_compose(object, A.instanceOrFunctionType(object, testRti), A._rtiToString(testRti, null)))); }, checkTypeBound(type, bound, variable, methodName) { var _null = null; if (A._isSubtype(init.typeUniverse, type, _null, bound, _null)) return type; throw A.wrapException(A._TypeError$fromMessage("The type argument '" + A._rtiToString(type, _null) + "' is not a subtype of the type variable bound '" + A._rtiToString(bound, _null) + "' of type variable '" + variable + "' in '" + methodName + "'.")); }, _Error_compose(object, objectRti, checkedTypeDescription) { var objectDescription = A.Error_safeToString(object); return objectDescription + ": type '" + A._rtiToString(objectRti == null ? A.instanceType(object) : objectRti, null) + "' is not a subtype of type '" + checkedTypeDescription + "'"; }, _TypeError$fromMessage(message) { return new A._TypeError("TypeError: " + message); }, _TypeError__TypeError$forType(object, type) { return new A._TypeError("TypeError: " + A._Error_compose(object, null, type)); }, _isObject(object) { return object != null; }, _asObject(object) { if (object != null) return object; throw A.wrapException(A._TypeError__TypeError$forType(object, "Object")); }, _isTop(object) { return true; }, _asTop(object) { return object; }, _isBool(object) { return true === object || false === object; }, _asBool(object) { if (true === object) return true; if (false === object) return false; throw A.wrapException(A._TypeError__TypeError$forType(object, "bool")); }, _asBoolS(object) { if (true === object) return true; if (false === object) return false; if (object == null) return object; throw A.wrapException(A._TypeError__TypeError$forType(object, "bool")); }, _asBoolQ(object) { if (true === object) return true; if (false === object) return false; if (object == null) return object; throw A.wrapException(A._TypeError__TypeError$forType(object, "bool?")); }, _asDouble(object) { if (typeof object == "number") return object; throw A.wrapException(A._TypeError__TypeError$forType(object, "double")); }, _asDoubleS(object) { if (typeof object == "number") return object; if (object == null) return object; throw A.wrapException(A._TypeError__TypeError$forType(object, "double")); }, _asDoubleQ(object) { if (typeof object == "number") return object; if (object == null) return object; throw A.wrapException(A._TypeError__TypeError$forType(object, "double?")); }, _isInt(object) { return typeof object == "number" && Math.floor(object) === object; }, _asInt(object) { if (typeof object == "number" && Math.floor(object) === object) return object; throw A.wrapException(A._TypeError__TypeError$forType(object, "int")); }, _asIntS(object) { if (typeof object == "number" && Math.floor(object) === object) return object; if (object == null) return object; throw A.wrapException(A._TypeError__TypeError$forType(object, "int")); }, _asIntQ(object) { if (typeof object == "number" && Math.floor(object) === object) return object; if (object == null) return object; throw A.wrapException(A._TypeError__TypeError$forType(object, "int?")); }, _isNum(object) { return typeof object == "number"; }, _asNum(object) { if (typeof object == "number") return object; throw A.wrapException(A._TypeError__TypeError$forType(object, "num")); }, _asNumS(object) { if (typeof object == "number") return object; if (object == null) return object; throw A.wrapException(A._TypeError__TypeError$forType(object, "num")); }, _asNumQ(object) { if (typeof object == "number") return object; if (object == null) return object; throw A.wrapException(A._TypeError__TypeError$forType(object, "num?")); }, _isString(object) { return typeof object == "string"; }, _asString(object) { if (typeof object == "string") return object; throw A.wrapException(A._TypeError__TypeError$forType(object, "String")); }, _asStringS(object) { if (typeof object == "string") return object; if (object == null) return object; throw A.wrapException(A._TypeError__TypeError$forType(object, "String")); }, _asStringQ(object) { if (typeof object == "string") return object; if (object == null) return object; throw A.wrapException(A._TypeError__TypeError$forType(object, "String?")); }, _rtiArrayToString(array, genericContext) { var s, sep, i; for (s = "", sep = "", i = 0; i < array.length; ++i, sep = ", ") s += sep + A._rtiToString(array[i], genericContext); return s; }, _functionRtiToString(functionType, genericContext, bounds) { var boundsLength, outerContextLength, offset, i, t1, t2, typeParametersText, typeSep, t3, t4, boundRti, kind, parameters, requiredPositional, requiredPositionalLength, optionalPositional, optionalPositionalLength, named, namedLength, returnTypeText, argumentsText, sep, _s2_ = ", "; if (bounds != null) { boundsLength = bounds.length; if (genericContext == null) { genericContext = A._setArrayType([], type$.JSArray_String); outerContextLength = null; } else outerContextLength = genericContext.length; offset = genericContext.length; for (i = boundsLength; i > 0; --i) B.JSArray_methods.add$1(genericContext, "T" + (offset + i)); for (t1 = type$.nullable_Object, t2 = type$.legacy_Object, typeParametersText = "<", typeSep = "", i = 0; i < boundsLength; ++i, typeSep = _s2_) { t3 = genericContext.length; t4 = t3 - 1 - i; if (!(t4 >= 0)) return A.ioore(genericContext, t4); typeParametersText = B.JSString_methods.$add(typeParametersText + typeSep, genericContext[t4]); boundRti = bounds[i]; kind = boundRti._kind; if (!(kind === 2 || kind === 3 || kind === 4 || kind === 5 || boundRti === t1)) if (!(boundRti === t2)) t3 = false; else t3 = true; else t3 = true; if (!t3) typeParametersText += " extends " + A._rtiToString(boundRti, genericContext); } typeParametersText += ">"; } else { typeParametersText = ""; outerContextLength = null; } t1 = functionType._primary; parameters = functionType._rest; requiredPositional = parameters._requiredPositional; requiredPositionalLength = requiredPositional.length; optionalPositional = parameters._optionalPositional; optionalPositionalLength = optionalPositional.length; named = parameters._named; namedLength = named.length; returnTypeText = A._rtiToString(t1, genericContext); for (argumentsText = "", sep = "", i = 0; i < requiredPositionalLength; ++i, sep = _s2_) argumentsText += sep + A._rtiToString(requiredPositional[i], genericContext); if (optionalPositionalLength > 0) { argumentsText += sep + "["; for (sep = "", i = 0; i < optionalPositionalLength; ++i, sep = _s2_) argumentsText += sep + A._rtiToString(optionalPositional[i], genericContext); argumentsText += "]"; } if (namedLength > 0) { argumentsText += sep + "{"; for (sep = "", i = 0; i < namedLength; i += 3, sep = _s2_) { argumentsText += sep; if (named[i + 1]) argumentsText += "required "; argumentsText += A._rtiToString(named[i + 2], genericContext) + " " + named[i]; } argumentsText += "}"; } if (outerContextLength != null) { genericContext.toString; genericContext.length = outerContextLength; } return typeParametersText + "(" + argumentsText + ") => " + returnTypeText; }, _rtiToString(rti, genericContext) { var s, questionArgument, argumentKind, $name, $arguments, t1, t2, kind = rti._kind; if (kind === 5) return "erased"; if (kind === 2) return "dynamic"; if (kind === 3) return "void"; if (kind === 1) return "Never"; if (kind === 4) return "any"; if (kind === 6) { s = A._rtiToString(rti._primary, genericContext); return s; } if (kind === 7) { questionArgument = rti._primary; s = A._rtiToString(questionArgument, genericContext); argumentKind = questionArgument._kind; return (argumentKind === 11 || argumentKind === 12 ? "(" + s + ")" : s) + "?"; } if (kind === 8) return "FutureOr<" + A._rtiToString(rti._primary, genericContext) + ">"; if (kind === 9) { $name = A._unminifyOrTag(rti._primary); $arguments = rti._rest; return $arguments.length > 0 ? $name + ("<" + A._rtiArrayToString($arguments, genericContext) + ">") : $name; } if (kind === 11) return A._functionRtiToString(rti, genericContext, null); if (kind === 12) return A._functionRtiToString(rti._primary, genericContext, rti._rest); if (kind === 13) { t1 = rti._primary; t2 = genericContext.length; t1 = t2 - 1 - t1; if (!(t1 >= 0 && t1 < t2)) return A.ioore(genericContext, t1); return genericContext[t1]; } return "?"; }, _unminifyOrTag(rawClassName) { var preserved = init.mangledGlobalNames[rawClassName]; if (preserved != null) return preserved; return rawClassName; }, _Universe_findRule(universe, targetType) { var rule = universe.tR[targetType]; for (; typeof rule == "string";) rule = universe.tR[rule]; return rule; }, _Universe_findErasedType(universe, cls) { var $length, erased, $arguments, i, $interface, t1 = universe.eT, probe = t1[cls]; if (probe == null) return A._Universe_eval(universe, cls, false); else if (typeof probe == "number") { $length = probe; erased = A._Universe__lookupTerminalRti(universe, 5, "#"); $arguments = A._Utils_newArrayOrEmpty($length); for (i = 0; i < $length; ++i) $arguments[i] = erased; $interface = A._Universe__lookupInterfaceRti(universe, cls, $arguments); t1[cls] = $interface; return $interface; } else return probe; }, _Universe_addRules(universe, rules) { return A._Utils_objectAssign(universe.tR, rules); }, _Universe_addErasedTypes(universe, types) { return A._Utils_objectAssign(universe.eT, types); }, _Universe_eval(universe, recipe, normalize) { var rti, t1 = universe.eC, probe = t1.get(recipe); if (probe != null) return probe; rti = A._Parser_parse(A._Parser_create(universe, null, recipe, normalize)); t1.set(recipe, rti); return rti; }, _Universe_evalInEnvironment(universe, environment, recipe) { var probe, rti, cache = environment._evalCache; if (cache == null) cache = environment._evalCache = new Map(); probe = cache.get(recipe); if (probe != null) return probe; rti = A._Parser_parse(A._Parser_create(universe, environment, recipe, true)); cache.set(recipe, rti); return rti; }, _Universe_bind(universe, environment, argumentsRti) { var argumentsRecipe, probe, rti, cache = environment._bindCache; if (cache == null) cache = environment._bindCache = new Map(); argumentsRecipe = argumentsRti._canonicalRecipe; probe = cache.get(argumentsRecipe); if (probe != null) return probe; rti = A._Universe__lookupBindingRti(universe, environment, argumentsRti._kind === 10 ? argumentsRti._rest : [argumentsRti]); cache.set(argumentsRecipe, rti); return rti; }, _Universe__installTypeTests(universe, rti) { rti._as = A._installSpecializedAsCheck; rti._is = A._installSpecializedIsTest; return rti; }, _Universe__lookupTerminalRti(universe, kind, key) { var rti, t1, probe = universe.eC.get(key); if (probe != null) return probe; rti = new A.Rti(null, null); rti._kind = kind; rti._canonicalRecipe = key; t1 = A._Universe__installTypeTests(universe, rti); universe.eC.set(key, t1); return t1; }, _Universe__lookupStarRti(universe, baseType, normalize) { var t1, key = baseType._canonicalRecipe + "*", probe = universe.eC.get(key); if (probe != null) return probe; t1 = A._Universe__createStarRti(universe, baseType, key, normalize); universe.eC.set(key, t1); return t1; }, _Universe__createStarRti(universe, baseType, key, normalize) { var baseKind, t1, rti; if (normalize) { baseKind = baseType._kind; if (!A.isStrongTopType(baseType)) t1 = baseType === type$.Null || baseType === type$.JSNull || baseKind === 7 || baseKind === 6; else t1 = true; if (t1) return baseType; } rti = new A.Rti(null, null); rti._kind = 6; rti._primary = baseType; rti._canonicalRecipe = key; return A._Universe__installTypeTests(universe, rti); }, _Universe__lookupQuestionRti(universe, baseType, normalize) { var t1, key = baseType._canonicalRecipe + "?", probe = universe.eC.get(key); if (probe != null) return probe; t1 = A._Universe__createQuestionRti(universe, baseType, key, normalize); universe.eC.set(key, t1); return t1; }, _Universe__createQuestionRti(universe, baseType, key, normalize) { var baseKind, t1, starArgument, rti; if (normalize) { baseKind = baseType._kind; if (!A.isStrongTopType(baseType)) if (!(baseType === type$.Null || baseType === type$.JSNull)) if (baseKind !== 7) t1 = baseKind === 8 && A.isNullable(baseType._primary); else t1 = true; else t1 = true; else t1 = true; if (t1) return baseType; else if (baseKind === 1 || baseType === type$.legacy_Never) return type$.Null; else if (baseKind === 6) { starArgument = baseType._primary; if (starArgument._kind === 8 && A.isNullable(starArgument._primary)) return starArgument; else return A.Rti__getQuestionFromStar(universe, baseType); } } rti = new A.Rti(null, null); rti._kind = 7; rti._primary = baseType; rti._canonicalRecipe = key; return A._Universe__installTypeTests(universe, rti); }, _Universe__lookupFutureOrRti(universe, baseType, normalize) { var t1, key = baseType._canonicalRecipe + "/", probe = universe.eC.get(key); if (probe != null) return probe; t1 = A._Universe__createFutureOrRti(universe, baseType, key, normalize); universe.eC.set(key, t1); return t1; }, _Universe__createFutureOrRti(universe, baseType, key, normalize) { var t1, t2, rti; if (normalize) { t1 = baseType._kind; if (!A.isStrongTopType(baseType)) if (!(baseType === type$.legacy_Object)) t2 = false; else t2 = true; else t2 = true; if (t2 || baseType === type$.Object) return baseType; else if (t1 === 1) return A._Universe__lookupInterfaceRti(universe, "Future", [baseType]); else if (baseType === type$.Null || baseType === type$.JSNull) return type$.nullable_Future_Null; } rti = new A.Rti(null, null); rti._kind = 8; rti._primary = baseType; rti._canonicalRecipe = key; return A._Universe__installTypeTests(universe, rti); }, _Universe__lookupGenericFunctionParameterRti(universe, index) { var rti, t1, key = "" + index + "^", probe = universe.eC.get(key); if (probe != null) return probe; rti = new A.Rti(null, null); rti._kind = 13; rti._primary = index; rti._canonicalRecipe = key; t1 = A._Universe__installTypeTests(universe, rti); universe.eC.set(key, t1); return t1; }, _Universe__canonicalRecipeJoin($arguments) { var s, sep, i, $length = $arguments.length; for (s = "", sep = "", i = 0; i < $length; ++i, sep = ",") s += sep + $arguments[i]._canonicalRecipe; return s; }, _Universe__canonicalRecipeJoinNamed($arguments) { var s, sep, i, t1, nameSep, $length = $arguments.length; for (s = "", sep = "", i = 0; i < $length; i += 3, sep = ",") { t1 = $arguments[i]; nameSep = $arguments[i + 1] ? "!" : ":"; s += sep + t1 + nameSep + $arguments[i + 2]._canonicalRecipe; } return s; }, _Universe__lookupInterfaceRti(universe, $name, $arguments) { var probe, rti, t1, s = $name; if ($arguments.length > 0) s += "<" + A._Universe__canonicalRecipeJoin($arguments) + ">"; probe = universe.eC.get(s); if (probe != null) return probe; rti = new A.Rti(null, null); rti._kind = 9; rti._primary = $name; rti._rest = $arguments; if ($arguments.length > 0) rti._precomputed1 = $arguments[0]; rti._canonicalRecipe = s; t1 = A._Universe__installTypeTests(universe, rti); universe.eC.set(s, t1); return t1; }, _Universe__lookupBindingRti(universe, base, $arguments) { var newBase, newArguments, key, probe, rti, t1; if (base._kind === 10) { newBase = base._primary; newArguments = base._rest.concat($arguments); } else { newArguments = $arguments; newBase = base; } key = newBase._canonicalRecipe + (";<" + A._Universe__canonicalRecipeJoin(newArguments) + ">"); probe = universe.eC.get(key); if (probe != null) return probe; rti = new A.Rti(null, null); rti._kind = 10; rti._primary = newBase; rti._rest = newArguments; rti._canonicalRecipe = key; t1 = A._Universe__installTypeTests(universe, rti); universe.eC.set(key, t1); return t1; }, _Universe__lookupFunctionRti(universe, returnType, parameters) { var sep, key, probe, rti, t1, s = returnType._canonicalRecipe, requiredPositional = parameters._requiredPositional, requiredPositionalLength = requiredPositional.length, optionalPositional = parameters._optionalPositional, optionalPositionalLength = optionalPositional.length, named = parameters._named, namedLength = named.length, recipe = "(" + A._Universe__canonicalRecipeJoin(requiredPositional); if (optionalPositionalLength > 0) { sep = requiredPositionalLength > 0 ? "," : ""; recipe += sep + "[" + A._Universe__canonicalRecipeJoin(optionalPositional) + "]"; } if (namedLength > 0) { sep = requiredPositionalLength > 0 ? "," : ""; recipe += sep + "{" + A._Universe__canonicalRecipeJoinNamed(named) + "}"; } key = s + (recipe + ")"); probe = universe.eC.get(key); if (probe != null) return probe; rti = new A.Rti(null, null); rti._kind = 11; rti._primary = returnType; rti._rest = parameters; rti._canonicalRecipe = key; t1 = A._Universe__installTypeTests(universe, rti); universe.eC.set(key, t1); return t1; }, _Universe__lookupGenericFunctionRti(universe, baseFunctionType, bounds, normalize) { var t1, key = baseFunctionType._canonicalRecipe + ("<" + A._Universe__canonicalRecipeJoin(bounds) + ">"), probe = universe.eC.get(key); if (probe != null) return probe; t1 = A._Universe__createGenericFunctionRti(universe, baseFunctionType, bounds, key, normalize); universe.eC.set(key, t1); return t1; }, _Universe__createGenericFunctionRti(universe, baseFunctionType, bounds, key, normalize) { var $length, typeArguments, count, i, bound, substitutedBase, substitutedBounds, rti; if (normalize) { $length = bounds.length; typeArguments = A._Utils_newArrayOrEmpty($length); for (count = 0, i = 0; i < $length; ++i) { bound = bounds[i]; if (bound._kind === 1) { typeArguments[i] = bound; ++count; } } if (count > 0) { substitutedBase = A._substitute(universe, baseFunctionType, typeArguments, 0); substitutedBounds = A._substituteArray(universe, bounds, typeArguments, 0); return A._Universe__lookupGenericFunctionRti(universe, substitutedBase, substitutedBounds, bounds !== substitutedBounds); } } rti = new A.Rti(null, null); rti._kind = 12; rti._primary = baseFunctionType; rti._rest = bounds; rti._canonicalRecipe = key; return A._Universe__installTypeTests(universe, rti); }, _Parser_create(universe, environment, recipe, normalize) { return {u: universe, e: environment, r: recipe, s: [], p: 0, n: normalize}; }, _Parser_parse(parser) { var t2, i, ch, t3, array, head, base, parameters, optionalPositional, named, item, source = parser.r, t1 = parser.s; for (t2 = source.length, i = 0; i < t2;) { ch = source.charCodeAt(i); if (ch >= 48 && ch <= 57) i = A._Parser_handleDigit(i + 1, ch, source, t1); else if ((((ch | 32) >>> 0) - 97 & 65535) < 26 || ch === 95 || ch === 36) i = A._Parser_handleIdentifier(parser, i, source, t1, false); else if (ch === 46) i = A._Parser_handleIdentifier(parser, i, source, t1, true); else { ++i; switch (ch) { case 44: break; case 58: t1.push(false); break; case 33: t1.push(true); break; case 59: t1.push(A._Parser_toType(parser.u, parser.e, t1.pop())); break; case 94: t1.push(A._Universe__lookupGenericFunctionParameterRti(parser.u, t1.pop())); break; case 35: t1.push(A._Universe__lookupTerminalRti(parser.u, 5, "#")); break; case 64: t1.push(A._Universe__lookupTerminalRti(parser.u, 2, "@")); break; case 126: t1.push(A._Universe__lookupTerminalRti(parser.u, 3, "~")); break; case 60: t1.push(parser.p); parser.p = t1.length; break; case 62: t3 = parser.u; array = t1.splice(parser.p); A._Parser_toTypes(parser.u, parser.e, array); parser.p = t1.pop(); head = t1.pop(); if (typeof head == "string") t1.push(A._Universe__lookupInterfaceRti(t3, head, array)); else { base = A._Parser_toType(t3, parser.e, head); switch (base._kind) { case 11: t1.push(A._Universe__lookupGenericFunctionRti(t3, base, array, parser.n)); break; default: t1.push(A._Universe__lookupBindingRti(t3, base, array)); break; } } break; case 38: A._Parser_handleExtendedOperations(parser, t1); break; case 42: t3 = parser.u; t1.push(A._Universe__lookupStarRti(t3, A._Parser_toType(t3, parser.e, t1.pop()), parser.n)); break; case 63: t3 = parser.u; t1.push(A._Universe__lookupQuestionRti(t3, A._Parser_toType(t3, parser.e, t1.pop()), parser.n)); break; case 47: t3 = parser.u; t1.push(A._Universe__lookupFutureOrRti(t3, A._Parser_toType(t3, parser.e, t1.pop()), parser.n)); break; case 40: t1.push(parser.p); parser.p = t1.length; break; case 41: t3 = parser.u; parameters = new A._FunctionParameters(); optionalPositional = t3.sEA; named = t3.sEA; head = t1.pop(); if (typeof head == "number") switch (head) { case -1: optionalPositional = t1.pop(); break; case -2: named = t1.pop(); break; default: t1.push(head); break; } else t1.push(head); array = t1.splice(parser.p); A._Parser_toTypes(parser.u, parser.e, array); parser.p = t1.pop(); parameters._requiredPositional = array; parameters._optionalPositional = optionalPositional; parameters._named = named; t1.push(A._Universe__lookupFunctionRti(t3, A._Parser_toType(t3, parser.e, t1.pop()), parameters)); break; case 91: t1.push(parser.p); parser.p = t1.length; break; case 93: array = t1.splice(parser.p); A._Parser_toTypes(parser.u, parser.e, array); parser.p = t1.pop(); t1.push(array); t1.push(-1); break; case 123: t1.push(parser.p); parser.p = t1.length; break; case 125: array = t1.splice(parser.p); A._Parser_toTypesNamed(parser.u, parser.e, array); parser.p = t1.pop(); t1.push(array); t1.push(-2); break; default: throw "Bad character " + ch; } } } item = t1.pop(); return A._Parser_toType(parser.u, parser.e, item); }, _Parser_handleDigit(i, digit, source, stack) { var t1, ch, value = digit - 48; for (t1 = source.length; i < t1; ++i) { ch = source.charCodeAt(i); if (!(ch >= 48 && ch <= 57)) break; value = value * 10 + (ch - 48); } stack.push(value); return i; }, _Parser_handleIdentifier(parser, start, source, stack, hasPeriod) { var t1, ch, t2, string, environment, recipe, i = start + 1; for (t1 = source.length; i < t1; ++i) { ch = source.charCodeAt(i); if (ch === 46) { if (hasPeriod) break; hasPeriod = true; } else { if (!((((ch | 32) >>> 0) - 97 & 65535) < 26 || ch === 95 || ch === 36)) t2 = ch >= 48 && ch <= 57; else t2 = true; if (!t2) break; } } string = source.substring(start, i); if (hasPeriod) { t1 = parser.u; environment = parser.e; if (environment._kind === 10) environment = environment._primary; recipe = A._Universe_findRule(t1, environment._primary)[string]; if (recipe == null) A.throwExpression('No "' + string + '" in "' + A.Rti__getCanonicalRecipe(environment) + '"'); stack.push(A._Universe_evalInEnvironment(t1, environment, recipe)); } else stack.push(string); return i; }, _Parser_handleExtendedOperations(parser, stack) { var $top = stack.pop(); if (0 === $top) { stack.push(A._Universe__lookupTerminalRti(parser.u, 1, "0&")); return; } if (1 === $top) { stack.push(A._Universe__lookupTerminalRti(parser.u, 4, "1&")); return; } throw A.wrapException(A.AssertionError$("Unexpected extended operation " + A.S($top))); }, _Parser_toType(universe, environment, item) { if (typeof item == "string") return A._Universe__lookupInterfaceRti(universe, item, universe.sEA); else if (typeof item == "number") return A._Parser_indexToType(universe, environment, item); else return item; }, _Parser_toTypes(universe, environment, items) { var i, $length = items.length; for (i = 0; i < $length; ++i) items[i] = A._Parser_toType(universe, environment, items[i]); }, _Parser_toTypesNamed(universe, environment, items) { var i, $length = items.length; for (i = 2; i < $length; i += 3) items[i] = A._Parser_toType(universe, environment, items[i]); }, _Parser_indexToType(universe, environment, index) { var typeArguments, len, kind = environment._kind; if (kind === 10) { if (index === 0) return environment._primary; typeArguments = environment._rest; len = typeArguments.length; if (index <= len) return typeArguments[index - 1]; index -= len; environment = environment._primary; kind = environment._kind; } else if (index === 0) return environment; if (kind !== 9) throw A.wrapException(A.AssertionError$("Indexed base must be an interface type")); typeArguments = environment._rest; if (index <= typeArguments.length) return typeArguments[index - 1]; throw A.wrapException(A.AssertionError$("Bad index " + index + " for " + environment.toString$0(0))); }, _isSubtype(universe, s, sEnv, t, tEnv) { var t1, sKind, leftTypeVariable, tKind, sBounds, tBounds, sLength, i, sBound, tBound; if (s === t) return true; if (!A.isStrongTopType(t)) if (!(t === type$.legacy_Object)) t1 = false; else t1 = true; else t1 = true; if (t1) return true; sKind = s._kind; if (sKind === 4) return true; if (A.isStrongTopType(s)) return false; if (s._kind !== 1) t1 = false; else t1 = true; if (t1) return true; leftTypeVariable = sKind === 13; if (leftTypeVariable) if (A._isSubtype(universe, sEnv[s._primary], sEnv, t, tEnv)) return true; tKind = t._kind; t1 = s === type$.Null || s === type$.JSNull; if (t1) { if (tKind === 8) return A._isSubtype(universe, s, sEnv, t._primary, tEnv); return t === type$.Null || t === type$.JSNull || tKind === 7 || tKind === 6; } if (t === type$.Object) { if (sKind === 8) return A._isSubtype(universe, s._primary, sEnv, t, tEnv); if (sKind === 6) return A._isSubtype(universe, s._primary, sEnv, t, tEnv); return sKind !== 7; } if (sKind === 6) return A._isSubtype(universe, s._primary, sEnv, t, tEnv); if (tKind === 6) { t1 = A.Rti__getQuestionFromStar(universe, t); return A._isSubtype(universe, s, sEnv, t1, tEnv); } if (sKind === 8) { if (!A._isSubtype(universe, s._primary, sEnv, t, tEnv)) return false; return A._isSubtype(universe, A.Rti__getFutureFromFutureOr(universe, s), sEnv, t, tEnv); } if (sKind === 7) { t1 = A._isSubtype(universe, type$.Null, sEnv, t, tEnv); return t1 && A._isSubtype(universe, s._primary, sEnv, t, tEnv); } if (tKind === 8) { if (A._isSubtype(universe, s, sEnv, t._primary, tEnv)) return true; return A._isSubtype(universe, s, sEnv, A.Rti__getFutureFromFutureOr(universe, t), tEnv); } if (tKind === 7) { t1 = A._isSubtype(universe, s, sEnv, type$.Null, tEnv); return t1 || A._isSubtype(universe, s, sEnv, t._primary, tEnv); } if (leftTypeVariable) return false; t1 = sKind !== 11; if ((!t1 || sKind === 12) && t === type$.Function) return true; if (tKind === 12) { if (s === type$.JavaScriptFunction) return true; if (sKind !== 12) return false; sBounds = s._rest; tBounds = t._rest; sLength = sBounds.length; if (sLength !== tBounds.length) return false; sEnv = sEnv == null ? sBounds : sBounds.concat(sEnv); tEnv = tEnv == null ? tBounds : tBounds.concat(tEnv); for (i = 0; i < sLength; ++i) { sBound = sBounds[i]; tBound = tBounds[i]; if (!A._isSubtype(universe, sBound, sEnv, tBound, tEnv) || !A._isSubtype(universe, tBound, tEnv, sBound, sEnv)) return false; } return A._isFunctionSubtype(universe, s._primary, sEnv, t._primary, tEnv); } if (tKind === 11) { if (s === type$.JavaScriptFunction) return true; if (t1) return false; return A._isFunctionSubtype(universe, s, sEnv, t, tEnv); } if (sKind === 9) { if (tKind !== 9) return false; return A._isInterfaceSubtype(universe, s, sEnv, t, tEnv); } return false; }, _isFunctionSubtype(universe, s, sEnv, t, tEnv) { var sParameters, tParameters, sRequiredPositional, tRequiredPositional, sRequiredPositionalLength, tRequiredPositionalLength, requiredPositionalDelta, sOptionalPositional, tOptionalPositional, sOptionalPositionalLength, tOptionalPositionalLength, i, t1, sNamed, tNamed, sNamedLength, tNamedLength, sIndex, tIndex, tName, sName, sIsRequired; if (!A._isSubtype(universe, s._primary, sEnv, t._primary, tEnv)) return false; sParameters = s._rest; tParameters = t._rest; sRequiredPositional = sParameters._requiredPositional; tRequiredPositional = tParameters._requiredPositional; sRequiredPositionalLength = sRequiredPositional.length; tRequiredPositionalLength = tRequiredPositional.length; if (sRequiredPositionalLength > tRequiredPositionalLength) return false; requiredPositionalDelta = tRequiredPositionalLength - sRequiredPositionalLength; sOptionalPositional = sParameters._optionalPositional; tOptionalPositional = tParameters._optionalPositional; sOptionalPositionalLength = sOptionalPositional.length; tOptionalPositionalLength = tOptionalPositional.length; if (sRequiredPositionalLength + sOptionalPositionalLength < tRequiredPositionalLength + tOptionalPositionalLength) return false; for (i = 0; i < sRequiredPositionalLength; ++i) { t1 = sRequiredPositional[i]; if (!A._isSubtype(universe, tRequiredPositional[i], tEnv, t1, sEnv)) return false; } for (i = 0; i < requiredPositionalDelta; ++i) { t1 = sOptionalPositional[i]; if (!A._isSubtype(universe, tRequiredPositional[sRequiredPositionalLength + i], tEnv, t1, sEnv)) return false; } for (i = 0; i < tOptionalPositionalLength; ++i) { t1 = sOptionalPositional[requiredPositionalDelta + i]; if (!A._isSubtype(universe, tOptionalPositional[i], tEnv, t1, sEnv)) return false; } sNamed = sParameters._named; tNamed = tParameters._named; sNamedLength = sNamed.length; tNamedLength = tNamed.length; for (sIndex = 0, tIndex = 0; tIndex < tNamedLength; tIndex += 3) { tName = tNamed[tIndex]; for (; true;) { if (sIndex >= sNamedLength) return false; sName = sNamed[sIndex]; sIndex += 3; if (tName < sName) return false; sIsRequired = sNamed[sIndex - 2]; if (sName < tName) { if (sIsRequired) return false; continue; } t1 = tNamed[tIndex + 1]; if (sIsRequired && !t1) return false; t1 = sNamed[sIndex - 1]; if (!A._isSubtype(universe, tNamed[tIndex + 2], tEnv, t1, sEnv)) return false; break; } } for (; sIndex < sNamedLength;) { if (sNamed[sIndex + 1]) return false; sIndex += 3; } return true; }, _isInterfaceSubtype(universe, s, sEnv, t, tEnv) { var rule, recipes, $length, supertypeArgs, i, t1, t2, sName = s._primary, tName = t._primary; for (; sName !== tName;) { rule = universe.tR[sName]; if (rule == null) return false; if (typeof rule == "string") { sName = rule; continue; } recipes = rule[tName]; if (recipes == null) return false; $length = recipes.length; supertypeArgs = $length > 0 ? new Array($length) : init.typeUniverse.sEA; for (i = 0; i < $length; ++i) supertypeArgs[i] = A._Universe_evalInEnvironment(universe, s, recipes[i]); return A._areArgumentsSubtypes(universe, supertypeArgs, null, sEnv, t._rest, tEnv); } t1 = s._rest; t2 = t._rest; return A._areArgumentsSubtypes(universe, t1, null, sEnv, t2, tEnv); }, _areArgumentsSubtypes(universe, sArgs, sVariances, sEnv, tArgs, tEnv) { var i, t1, t2, $length = sArgs.length; for (i = 0; i < $length; ++i) { t1 = sArgs[i]; t2 = tArgs[i]; if (!A._isSubtype(universe, t1, sEnv, t2, tEnv)) return false; } return true; }, isNullable(t) { var t1, kind = t._kind; if (!(t === type$.Null || t === type$.JSNull)) if (!A.isStrongTopType(t)) if (kind !== 7) if (!(kind === 6 && A.isNullable(t._primary))) t1 = kind === 8 && A.isNullable(t._primary); else t1 = true; else t1 = true; else t1 = true; else t1 = true; return t1; }, isTopType(t) { var t1; if (!A.isStrongTopType(t)) if (!(t === type$.legacy_Object)) t1 = false; else t1 = true; else t1 = true; return t1; }, isStrongTopType(t) { var kind = t._kind; return kind === 2 || kind === 3 || kind === 4 || kind === 5 || t === type$.nullable_Object; }, _Utils_objectAssign(o, other) { var i, key, keys = Object.keys(other), $length = keys.length; for (i = 0; i < $length; ++i) { key = keys[i]; o[key] = other[key]; } }, _Utils_newArrayOrEmpty($length) { return $length > 0 ? new Array($length) : init.typeUniverse.sEA; }, Rti: function Rti(t0, t1) { var _ = this; _._as = t0; _._is = t1; _._cachedRuntimeType = _._specializedTestResource = _._precomputed1 = null; _._kind = 0; _._canonicalRecipe = _._bindCache = _._evalCache = _._rest = _._primary = null; }, _FunctionParameters: function _FunctionParameters() { this._named = this._optionalPositional = this._requiredPositional = null; }, _Type: function _Type(t0) { this._rti = t0; }, _Error: function _Error() { }, _TypeError: function _TypeError(t0) { this.__rti$_message = t0; }, _AsyncRun__initializeScheduleImmediate() { var div, span, t1 = {}; if (self.scheduleImmediate != null) return A.async__AsyncRun__scheduleImmediateJsOverride$closure(); if (self.MutationObserver != null && self.document != null) { div = self.document.createElement("div"); span = self.document.createElement("span"); t1.storedCallback = null; new self.MutationObserver(A.convertDartClosureToJS(new A._AsyncRun__initializeScheduleImmediate_internalCallback(t1), 1)).observe(div, {childList: true}); return new A._AsyncRun__initializeScheduleImmediate_closure(t1, div, span); } else if (self.setImmediate != null) return A.async__AsyncRun__scheduleImmediateWithSetImmediate$closure(); return A.async__AsyncRun__scheduleImmediateWithTimer$closure(); }, _AsyncRun__scheduleImmediateJsOverride(callback) { self.scheduleImmediate(A.convertDartClosureToJS(new A._AsyncRun__scheduleImmediateJsOverride_internalCallback(type$.void_Function._as(callback)), 0)); }, _AsyncRun__scheduleImmediateWithSetImmediate(callback) { self.setImmediate(A.convertDartClosureToJS(new A._AsyncRun__scheduleImmediateWithSetImmediate_internalCallback(type$.void_Function._as(callback)), 0)); }, _AsyncRun__scheduleImmediateWithTimer(callback) { type$.void_Function._as(callback); A._TimerImpl$(0, callback); }, _TimerImpl$(milliseconds, callback) { var t1 = new A._TimerImpl(); t1._TimerImpl$2(milliseconds, callback); return t1; }, _makeAsyncAwaitCompleter($T) { return new A._AsyncAwaitCompleter(new A._Future($.Zone__current, $T._eval$1("_Future<0>")), $T._eval$1("_AsyncAwaitCompleter<0>")); }, _asyncStartSync(bodyFunction, completer) { bodyFunction.call$2(0, null); completer.isSync = true; return completer._future; }, _asyncAwait(object, bodyFunction) { A._awaitOnObject(object, bodyFunction); }, _asyncReturn(object, completer) { completer.complete$1(0, object); }, _asyncRethrow(object, completer) { completer.completeError$2(A.unwrapException(object), A.getTraceFromException(object)); }, _awaitOnObject(object, bodyFunction) { var t1, future, thenCallback = new A._awaitOnObject_closure(bodyFunction), errorCallback = new A._awaitOnObject_closure0(bodyFunction); if (object instanceof A._Future) object._thenAwait$1$2(thenCallback, errorCallback, type$.dynamic); else { t1 = type$.dynamic; if (type$.Future_dynamic._is(object)) object.then$1$2$onError(thenCallback, errorCallback, t1); else { future = new A._Future($.Zone__current, type$._Future_dynamic); future._state = 8; future._resultOrListeners = object; future._thenAwait$1$2(thenCallback, errorCallback, t1); } } }, _wrapJsFunctionForAsync($function) { var $protected = function(fn, ERROR) { return function(errorCode, result) { while (true) try { fn(errorCode, result); break; } catch (error) { result = error; errorCode = ERROR; } }; }($function, 1); return $.Zone__current.registerBinaryCallback$3$1(new A._wrapJsFunctionForAsync_closure($protected), type$.void, type$.int, type$.dynamic); }, _IterationMarker_yieldStar(values) { return new A._IterationMarker(values, 1); }, _IterationMarker_endOfIteration() { return B._IterationMarker_null_2; }, _IterationMarker_uncaughtError(error) { return new A._IterationMarker(error, 3); }, _makeSyncStarIterable(body, $T) { return new A._SyncStarIterable(body, $T._eval$1("_SyncStarIterable<0>")); }, AsyncError$(error, stackTrace) { var t1 = A.checkNotNullable(error, "error", type$.Object); return new A.AsyncError(t1, stackTrace == null ? A.AsyncError_defaultStackTrace(error) : stackTrace); }, AsyncError_defaultStackTrace(error) { var stackTrace; if (type$.Error._is(error)) { stackTrace = error.get$stackTrace(); if (stackTrace != null) return stackTrace; } return B.C__StringStackTrace; }, _Future__chainCoreFuture(source, target) { var t1, t2, listeners; for (t1 = type$._Future_dynamic; t2 = source._state, (t2 & 4) !== 0;) source = t1._as(source._resultOrListeners); if ((t2 & 24) !== 0) { listeners = target._removeListeners$0(); target._cloneResult$1(source); A._Future__propagateToListeners(target, listeners); } else { listeners = type$.nullable__FutureListener_dynamic_dynamic._as(target._resultOrListeners); target._state = target._state & 1 | 4; target._resultOrListeners = source; source._prependListeners$1(listeners); } }, _Future__propagateToListeners(source, listeners) { var t2, t3, t4, _box_0, t5, t6, hasError, asyncError, nextListener, nextListener0, sourceResult, t7, zone, oldZone, result, current, _box_1 = {}, t1 = _box_1.source = source; for (t2 = type$.AsyncError, t3 = type$.nullable__FutureListener_dynamic_dynamic, t4 = type$.Future_dynamic; true;) { _box_0 = {}; t5 = t1._state; t6 = (t5 & 16) === 0; hasError = !t6; if (listeners == null) { if (hasError && (t5 & 1) === 0) { asyncError = t2._as(t1._resultOrListeners); A._rootHandleError(asyncError.error, asyncError.stackTrace); } return; } _box_0.listener = listeners; nextListener = listeners._nextListener; for (t1 = listeners; nextListener != null; t1 = nextListener, nextListener = nextListener0) { t1._nextListener = null; A._Future__propagateToListeners(_box_1.source, t1); _box_0.listener = nextListener; nextListener0 = nextListener._nextListener; } t5 = _box_1.source; sourceResult = t5._resultOrListeners; _box_0.listenerHasError = hasError; _box_0.listenerValueOrError = sourceResult; if (t6) { t7 = t1.state; t7 = (t7 & 1) !== 0 || (t7 & 15) === 8; } else t7 = true; if (t7) { zone = t1.result._zone; if (hasError) { t5 = t5._zone === zone; t5 = !(t5 || t5); } else t5 = false; if (t5) { t2._as(sourceResult); A._rootHandleError(sourceResult.error, sourceResult.stackTrace); return; } oldZone = $.Zone__current; if (oldZone !== zone) $.Zone__current = zone; else oldZone = null; t1 = t1.state; if ((t1 & 15) === 8) new A._Future__propagateToListeners_handleWhenCompleteCallback(_box_0, _box_1, hasError).call$0(); else if (t6) { if ((t1 & 1) !== 0) new A._Future__propagateToListeners_handleValueCallback(_box_0, sourceResult).call$0(); } else if ((t1 & 2) !== 0) new A._Future__propagateToListeners_handleError(_box_1, _box_0).call$0(); if (oldZone != null) $.Zone__current = oldZone; t1 = _box_0.listenerValueOrError; if (t4._is(t1)) { t5 = _box_0.listener.$ti; t5 = t5._eval$1("Future<2>")._is(t1) || !t5._rest[1]._is(t1); } else t5 = false; if (t5) { t4._as(t1); result = _box_0.listener.result; if ((t1._state & 24) !== 0) { current = t3._as(result._resultOrListeners); result._resultOrListeners = null; listeners = result._reverseListeners$1(current); result._state = t1._state & 30 | result._state & 1; result._resultOrListeners = t1._resultOrListeners; _box_1.source = t1; continue; } else A._Future__chainCoreFuture(t1, result); return; } } result = _box_0.listener.result; current = t3._as(result._resultOrListeners); result._resultOrListeners = null; listeners = result._reverseListeners$1(current); t1 = _box_0.listenerHasError; t5 = _box_0.listenerValueOrError; if (!t1) { result.$ti._precomputed1._as(t5); result._state = 8; result._resultOrListeners = t5; } else { t2._as(t5); result._state = result._state & 1 | 16; result._resultOrListeners = t5; } _box_1.source = result; t1 = result; } }, _registerErrorHandler(errorHandler, zone) { var t1; if (type$.dynamic_Function_Object_StackTrace._is(errorHandler)) return zone.registerBinaryCallback$3$1(errorHandler, type$.dynamic, type$.Object, type$.StackTrace); t1 = type$.dynamic_Function_Object; if (t1._is(errorHandler)) return t1._as(errorHandler); throw A.wrapException(A.ArgumentError$value(errorHandler, "onError", string$.Error_)); }, _microtaskLoop() { var entry, next; for (entry = $._nextCallback; entry != null; entry = $._nextCallback) { $._lastPriorityCallback = null; next = entry.next; $._nextCallback = next; if (next == null) $._lastCallback = null; entry.callback.call$0(); } }, _startMicrotaskLoop() { $._isInCallbackLoop = true; try { A._microtaskLoop(); } finally { $._lastPriorityCallback = null; $._isInCallbackLoop = false; if ($._nextCallback != null) $.$get$_AsyncRun__scheduleImmediateClosure().call$1(A.async___startMicrotaskLoop$closure()); } }, _scheduleAsyncCallback(callback) { var newEntry = new A._AsyncCallbackEntry(callback), lastCallback = $._lastCallback; if (lastCallback == null) { $._nextCallback = $._lastCallback = newEntry; if (!$._isInCallbackLoop) $.$get$_AsyncRun__scheduleImmediateClosure().call$1(A.async___startMicrotaskLoop$closure()); } else $._lastCallback = lastCallback.next = newEntry; }, _schedulePriorityAsyncCallback(callback) { var entry, lastPriorityCallback, next, t1 = $._nextCallback; if (t1 == null) { A._scheduleAsyncCallback(callback); $._lastPriorityCallback = $._lastCallback; return; } entry = new A._AsyncCallbackEntry(callback); lastPriorityCallback = $._lastPriorityCallback; if (lastPriorityCallback == null) { entry.next = t1; $._nextCallback = $._lastPriorityCallback = entry; } else { next = lastPriorityCallback.next; entry.next = next; $._lastPriorityCallback = lastPriorityCallback.next = entry; if (next == null) $._lastCallback = entry; } }, scheduleMicrotask(callback) { var _null = null, currentZone = $.Zone__current; if (B.C__RootZone === currentZone) { A._rootScheduleMicrotask(_null, _null, B.C__RootZone, callback); return; } A._rootScheduleMicrotask(_null, _null, currentZone, type$.void_Function._as(currentZone.bindCallbackGuarded$1(callback))); }, StreamIterator_StreamIterator(stream, $T) { A.checkNotNullable(stream, "stream", type$.Object); return new A._StreamIterator($T._eval$1("_StreamIterator<0>")); }, _rootHandleError(error, stackTrace) { A._schedulePriorityAsyncCallback(new A._rootHandleError_closure(error, stackTrace)); }, _rootRun($self, $parent, zone, f, $R) { var old, t1 = $.Zone__current; if (t1 === zone) return f.call$0(); $.Zone__current = zone; old = t1; try { t1 = f.call$0(); return t1; } finally { $.Zone__current = old; } }, _rootRunUnary($self, $parent, zone, f, arg, $R, $T) { var old, t1 = $.Zone__current; if (t1 === zone) return f.call$1(arg); $.Zone__current = zone; old = t1; try { t1 = f.call$1(arg); return t1; } finally { $.Zone__current = old; } }, _rootRunBinary($self, $parent, zone, f, arg1, arg2, $R, T1, T2) { var old, t1 = $.Zone__current; if (t1 === zone) return f.call$2(arg1, arg2); $.Zone__current = zone; old = t1; try { t1 = f.call$2(arg1, arg2); return t1; } finally { $.Zone__current = old; } }, _rootScheduleMicrotask($self, $parent, zone, f) { type$.void_Function._as(f); if (B.C__RootZone !== zone) f = zone.bindCallbackGuarded$1(f); A._scheduleAsyncCallback(f); }, _AsyncRun__initializeScheduleImmediate_internalCallback: function _AsyncRun__initializeScheduleImmediate_internalCallback(t0) { this._box_0 = t0; }, _AsyncRun__initializeScheduleImmediate_closure: function _AsyncRun__initializeScheduleImmediate_closure(t0, t1, t2) { this._box_0 = t0; this.div = t1; this.span = t2; }, _AsyncRun__scheduleImmediateJsOverride_internalCallback: function _AsyncRun__scheduleImmediateJsOverride_internalCallback(t0) { this.callback = t0; }, _AsyncRun__scheduleImmediateWithSetImmediate_internalCallback: function _AsyncRun__scheduleImmediateWithSetImmediate_internalCallback(t0) { this.callback = t0; }, _TimerImpl: function _TimerImpl() { }, _TimerImpl_internalCallback: function _TimerImpl_internalCallback(t0, t1) { this.$this = t0; this.callback = t1; }, _AsyncAwaitCompleter: function _AsyncAwaitCompleter(t0, t1) { this._future = t0; this.isSync = false; this.$ti = t1; }, _awaitOnObject_closure: function _awaitOnObject_closure(t0) { this.bodyFunction = t0; }, _awaitOnObject_closure0: function _awaitOnObject_closure0(t0) { this.bodyFunction = t0; }, _wrapJsFunctionForAsync_closure: function _wrapJsFunctionForAsync_closure(t0) { this.$protected = t0; }, _IterationMarker: function _IterationMarker(t0, t1) { this.value = t0; this.state = t1; }, _SyncStarIterator: function _SyncStarIterator(t0, t1) { var _ = this; _._body = t0; _._suspendedBodies = _._nestedIterator = _._async$_current = null; _.$ti = t1; }, _SyncStarIterable: function _SyncStarIterable(t0, t1) { this._outerHelper = t0; this.$ti = t1; }, AsyncError: function AsyncError(t0, t1) { this.error = t0; this.stackTrace = t1; }, _Completer: function _Completer() { }, _AsyncCompleter: function _AsyncCompleter(t0, t1) { this.future = t0; this.$ti = t1; }, _FutureListener: function _FutureListener(t0, t1, t2, t3, t4) { var _ = this; _._nextListener = null; _.result = t0; _.state = t1; _.callback = t2; _.errorCallback = t3; _.$ti = t4; }, _Future: function _Future(t0, t1) { var _ = this; _._state = 0; _._zone = t0; _._resultOrListeners = null; _.$ti = t1; }, _Future__addListener_closure: function _Future__addListener_closure(t0, t1) { this.$this = t0; this.listener = t1; }, _Future__prependListeners_closure: function _Future__prependListeners_closure(t0, t1) { this._box_0 = t0; this.$this = t1; }, _Future__chainForeignFuture_closure: function _Future__chainForeignFuture_closure(t0) { this.$this = t0; }, _Future__chainForeignFuture_closure0: function _Future__chainForeignFuture_closure0(t0) { this.$this = t0; }, _Future__chainForeignFuture_closure1: function _Future__chainForeignFuture_closure1(t0, t1, t2) { this.$this = t0; this.e = t1; this.s = t2; }, _Future__asyncCompleteWithValue_closure: function _Future__asyncCompleteWithValue_closure(t0, t1) { this.$this = t0; this.value = t1; }, _Future__chainFuture_closure: function _Future__chainFuture_closure(t0, t1) { this.$this = t0; this.value = t1; }, _Future__asyncCompleteError_closure: function _Future__asyncCompleteError_closure(t0, t1, t2) { this.$this = t0; this.error = t1; this.stackTrace = t2; }, _Future__propagateToListeners_handleWhenCompleteCallback: function _Future__propagateToListeners_handleWhenCompleteCallback(t0, t1, t2) { this._box_0 = t0; this._box_1 = t1; this.hasError = t2; }, _Future__propagateToListeners_handleWhenCompleteCallback_closure: function _Future__propagateToListeners_handleWhenCompleteCallback_closure(t0) { this.originalSource = t0; }, _Future__propagateToListeners_handleValueCallback: function _Future__propagateToListeners_handleValueCallback(t0, t1) { this._box_0 = t0; this.sourceResult = t1; }, _Future__propagateToListeners_handleError: function _Future__propagateToListeners_handleError(t0, t1) { this._box_1 = t0; this._box_0 = t1; }, _AsyncCallbackEntry: function _AsyncCallbackEntry(t0) { this.callback = t0; this.next = null; }, StreamTransformerBase: function StreamTransformerBase() { }, _StreamIterator: function _StreamIterator(t0) { this.$ti = t0; }, _Zone: function _Zone() { }, _rootHandleError_closure: function _rootHandleError_closure(t0, t1) { this.error = t0; this.stackTrace = t1; }, _RootZone: function _RootZone() { }, _RootZone_bindCallbackGuarded_closure: function _RootZone_bindCallbackGuarded_closure(t0, t1) { this.$this = t0; this.f = t1; }, _HashMap__getTableEntry(table, key) { var entry = table[key]; return entry === table ? null : entry; }, _HashMap__setTableEntry(table, key, value) { if (value == null) table[key] = table; else table[key] = value; }, _HashMap__newHashTable() { var table = Object.create(null); A._HashMap__setTableEntry(table, "", table); delete table[""]; return table; }, LinkedHashMap_LinkedHashMap(hashCode, isValidKey, $K, $V) { if (isValidKey == null) { if (hashCode == null) return new A.JsLinkedHashMap($K._eval$1("@<0>")._bind$1($V)._eval$1("JsLinkedHashMap<1,2>")); } else if (hashCode == null) hashCode = A.collection___defaultHashCode$closure(); return A._LinkedCustomHashMap$(A.collection___defaultEquals$closure(), hashCode, isValidKey, $K, $V); }, LinkedHashMap_LinkedHashMap$_literal(keyValuePairs, $K, $V) { return $K._eval$1("@<0>")._bind$1($V)._eval$1("LinkedHashMap<1,2>")._as(A.fillLiteralMap(keyValuePairs, new A.JsLinkedHashMap($K._eval$1("@<0>")._bind$1($V)._eval$1("JsLinkedHashMap<1,2>")))); }, LinkedHashMap_LinkedHashMap$_empty($K, $V) { return new A.JsLinkedHashMap($K._eval$1("@<0>")._bind$1($V)._eval$1("JsLinkedHashMap<1,2>")); }, _LinkedCustomHashMap$(_equals, _hashCode, validKey, $K, $V) { var t1 = validKey != null ? validKey : new A._LinkedCustomHashMap_closure($K); return new A._LinkedCustomHashMap(_equals, _hashCode, t1, $K._eval$1("@<0>")._bind$1($V)._eval$1("_LinkedCustomHashMap<1,2>")); }, _defaultEquals(a, b) { return J.$eq$(a, b); }, _defaultHashCode(a) { return J.get$hashCode$(a); }, IterableBase_iterableToShortString(iterable, leftDelimiter, rightDelimiter) { var parts, t1; if (A._isToStringVisiting(iterable)) { if (leftDelimiter === "(" && rightDelimiter === ")") return "(...)"; return leftDelimiter + "..." + rightDelimiter; } parts = A._setArrayType([], type$.JSArray_String); B.JSArray_methods.add$1($._toStringVisiting, iterable); try { A._iterablePartsToStrings(iterable, parts); } finally { if (0 >= $._toStringVisiting.length) return A.ioore($._toStringVisiting, -1); $._toStringVisiting.pop(); } t1 = A.StringBuffer__writeAll(leftDelimiter, type$.Iterable_dynamic._as(parts), ", ") + rightDelimiter; return t1.charCodeAt(0) == 0 ? t1 : t1; }, IterableBase_iterableToFullString(iterable, leftDelimiter, rightDelimiter) { var buffer, t1; if (A._isToStringVisiting(iterable)) return leftDelimiter + "..." + rightDelimiter; buffer = new A.StringBuffer(leftDelimiter); B.JSArray_methods.add$1($._toStringVisiting, iterable); try { t1 = buffer; t1._contents = A.StringBuffer__writeAll(t1._contents, iterable, ", "); } finally { if (0 >= $._toStringVisiting.length) return A.ioore($._toStringVisiting, -1); $._toStringVisiting.pop(); } buffer._contents += rightDelimiter; t1 = buffer._contents; return t1.charCodeAt(0) == 0 ? t1 : t1; }, _isToStringVisiting(o) { var t1, i; for (t1 = $._toStringVisiting.length, i = 0; i < t1; ++i) if (o === $._toStringVisiting[i]) return true; return false; }, _iterablePartsToStrings(iterable, parts) { var next, ultimateString, penultimateString, penultimate, ultimate, ultimate0, elision, it = iterable.get$iterator(iterable), $length = 0, count = 0; while (true) { if (!($length < 80 || count < 3)) break; if (!it.moveNext$0()) return; next = A.S(it.get$current(it)); B.JSArray_methods.add$1(parts, next); $length += next.length + 2; ++count; } if (!it.moveNext$0()) { if (count <= 5) return; if (0 >= parts.length) return A.ioore(parts, -1); ultimateString = parts.pop(); if (0 >= parts.length) return A.ioore(parts, -1); penultimateString = parts.pop(); } else { penultimate = it.get$current(it); ++count; if (!it.moveNext$0()) { if (count <= 4) { B.JSArray_methods.add$1(parts, A.S(penultimate)); return; } ultimateString = A.S(penultimate); if (0 >= parts.length) return A.ioore(parts, -1); penultimateString = parts.pop(); $length += ultimateString.length + 2; } else { ultimate = it.get$current(it); ++count; for (; it.moveNext$0(); penultimate = ultimate, ultimate = ultimate0) { ultimate0 = it.get$current(it); ++count; if (count > 100) { while (true) { if (!($length > 75 && count > 3)) break; if (0 >= parts.length) return A.ioore(parts, -1); $length -= parts.pop().length + 2; --count; } B.JSArray_methods.add$1(parts, "..."); return; } } penultimateString = A.S(penultimate); ultimateString = A.S(ultimate); $length += ultimateString.length + penultimateString.length + 4; } } if (count > parts.length + 2) { $length += 5; elision = "..."; } else elision = null; while (true) { if (!($length > 80 && parts.length > 3)) break; if (0 >= parts.length) return A.ioore(parts, -1); $length -= parts.pop().length + 2; if (elision == null) { $length += 5; elision = "..."; } } if (elision != null) B.JSArray_methods.add$1(parts, elision); B.JSArray_methods.add$1(parts, penultimateString); B.JSArray_methods.add$1(parts, ultimateString); }, LinkedHashMap_LinkedHashMap$from(other, $K, $V) { var result = A.LinkedHashMap_LinkedHashMap(null, null, $K, $V); J.forEach$1$x(other, new A.LinkedHashMap_LinkedHashMap$from_closure(result, $K, $V)); return result; }, MapBase_mapToString(m) { var result, t1 = {}; if (A._isToStringVisiting(m)) return "{...}"; result = new A.StringBuffer(""); try { B.JSArray_methods.add$1($._toStringVisiting, m); result._contents += "{"; t1.first = true; J.forEach$1$x(m, new A.MapBase_mapToString_closure(t1, result)); result._contents += "}"; } finally { if (0 >= $._toStringVisiting.length) return A.ioore($._toStringVisiting, -1); $._toStringVisiting.pop(); } t1 = result._contents; return t1.charCodeAt(0) == 0 ? t1 : t1; }, _HashMap: function _HashMap() { }, _IdentityHashMap: function _IdentityHashMap(t0) { var _ = this; _._collection$_length = 0; _._collection$_keys = _._collection$_rest = _._collection$_nums = _._collection$_strings = null; _.$ti = t0; }, _HashMapKeyIterable: function _HashMapKeyIterable(t0, t1) { this._collection$_map = t0; this.$ti = t1; }, _HashMapKeyIterator: function _HashMapKeyIterator(t0, t1, t2) { var _ = this; _._collection$_map = t0; _._collection$_keys = t1; _._offset = 0; _._collection$_current = null; _.$ti = t2; }, _LinkedCustomHashMap: function _LinkedCustomHashMap(t0, t1, t2, t3) { var _ = this; _._equals = t0; _._hashCode = t1; _._validKey = t2; _._length = 0; _._last = _._first = _.__js_helper$_rest = _._nums = _._strings = null; _._modifications = 0; _.$ti = t3; }, _LinkedCustomHashMap_closure: function _LinkedCustomHashMap_closure(t0) { this.K = t0; }, IterableBase: function IterableBase() { }, LinkedHashMap_LinkedHashMap$from_closure: function LinkedHashMap_LinkedHashMap$from_closure(t0, t1, t2) { this.result = t0; this.K = t1; this.V = t2; }, ListBase: function ListBase() { }, ListMixin: function ListMixin() { }, MapBase: function MapBase() { }, MapBase_mapToString_closure: function MapBase_mapToString_closure(t0, t1) { this._box_0 = t0; this.result = t1; }, MapMixin: function MapMixin() { }, MapMixin_entries_closure: function MapMixin_entries_closure(t0) { this.$this = t0; }, _UnmodifiableMapMixin: function _UnmodifiableMapMixin() { }, MapView: function MapView() { }, UnmodifiableMapView: function UnmodifiableMapView() { }, _ListBase_Object_ListMixin: function _ListBase_Object_ListMixin() { }, _UnmodifiableMapView_MapView__UnmodifiableMapMixin: function _UnmodifiableMapView_MapView__UnmodifiableMapMixin() { }, _parseJson(source, reviver) { var e, exception, t1, parsed = null; try { parsed = JSON.parse(source); } catch (exception) { e = A.unwrapException(exception); t1 = A.FormatException$(String(e), null, null); throw A.wrapException(t1); } t1 = A._convertJsonToDartLazy(parsed); return t1; }, _convertJsonToDartLazy(object) { var i; if (object == null) return null; if (typeof object != "object") return object; if (Object.getPrototypeOf(object) !== Array.prototype) return new A._JsonMap(object, Object.create(null)); for (i = 0; i < object.length; ++i) object[i] = A._convertJsonToDartLazy(object[i]); return object; }, Utf8Decoder__convertIntercepted(allowMalformed, codeUnits, start, end) { var casted, result; if (codeUnits instanceof Uint8Array) { casted = codeUnits; end = casted.length; if (end - start < 15) return null; result = A.Utf8Decoder__convertInterceptedUint8List(allowMalformed, casted, start, end); if (result != null && allowMalformed) if (result.indexOf("\ufffd") >= 0) return null; return result; } return null; }, Utf8Decoder__convertInterceptedUint8List(allowMalformed, codeUnits, start, end) { var decoder = allowMalformed ? $.$get$Utf8Decoder__decoderNonfatal() : $.$get$Utf8Decoder__decoder(); if (decoder == null) return null; if (0 === start && end === codeUnits.length) return A.Utf8Decoder__useTextDecoder(decoder, codeUnits); return A.Utf8Decoder__useTextDecoder(decoder, codeUnits.subarray(start, A.RangeError_checkValidRange(start, end, codeUnits.length))); }, Utf8Decoder__useTextDecoder(decoder, codeUnits) { var t1, exception; try { t1 = decoder.decode(codeUnits); return t1; } catch (exception) { } return null; }, JsonUnsupportedObjectError$(unsupportedObject, cause, partialResult) { return new A.JsonUnsupportedObjectError(unsupportedObject, cause); }, _defaultToEncodable(object) { return object.toJson$0(); }, _JsonStringStringifier$(_sink, _toEncodable) { return new A._JsonStringStringifier(_sink, [], A.convert___defaultToEncodable$closure()); }, _JsonStringStringifier_stringify(object, toEncodable, indent) { var stringifier, t1, output = new A.StringBuffer(""); if (indent == null) stringifier = A._JsonStringStringifier$(output, toEncodable); else stringifier = new A._JsonStringStringifierPretty(indent, 0, output, [], A.convert___defaultToEncodable$closure()); stringifier.writeObject$1(object); t1 = output._contents; return t1.charCodeAt(0) == 0 ? t1 : t1; }, _Utf8Decoder_errorDescription(state) { switch (state) { case 65: return "Missing extension byte"; case 67: return "Unexpected extension byte"; case 69: return "Invalid UTF-8 byte"; case 71: return "Overlong encoding"; case 73: return "Out of unicode range"; case 75: return "Encoded surrogate"; case 77: return "Unfinished UTF-8 octet sequence"; default: return ""; } }, _Utf8Decoder__makeUint8List(codeUnits, start, end) { var t1, i, t2, b, $length = end - start, bytes = new Uint8Array($length); for (t1 = codeUnits.length, i = 0; i < $length; ++i) { t2 = start + i; if (!(t2 < t1)) return A.ioore(codeUnits, t2); b = codeUnits[t2]; if ((b & 4294967040) >>> 0 !== 0) b = 255; if (!(i < $length)) return A.ioore(bytes, i); bytes[i] = b; } return bytes; }, _JsonMap: function _JsonMap(t0, t1) { this._original = t0; this._processed = t1; this._data = null; }, _JsonMapKeyIterable: function _JsonMapKeyIterable(t0) { this._parent = t0; }, Utf8Decoder__decoder_closure: function Utf8Decoder__decoder_closure() { }, Utf8Decoder__decoderNonfatal_closure: function Utf8Decoder__decoderNonfatal_closure() { }, _UnicodeSubsetEncoder: function _UnicodeSubsetEncoder() { }, _UnicodeSubsetDecoder: function _UnicodeSubsetDecoder() { }, Codec: function Codec() { }, Converter: function Converter() { }, Encoding: function Encoding() { }, JsonUnsupportedObjectError: function JsonUnsupportedObjectError(t0, t1) { this.unsupportedObject = t0; this.cause = t1; }, JsonCyclicError: function JsonCyclicError(t0, t1) { this.unsupportedObject = t0; this.cause = t1; }, JsonCodec: function JsonCodec() { }, JsonEncoder: function JsonEncoder(t0, t1) { this.indent = t0; this._toEncodable = t1; }, JsonDecoder: function JsonDecoder(t0) { this._reviver = t0; }, _JsonStringifier: function _JsonStringifier() { }, _JsonStringifier_writeMap_closure: function _JsonStringifier_writeMap_closure(t0, t1) { this._box_0 = t0; this.keyValueList = t1; }, _JsonPrettyPrintMixin: function _JsonPrettyPrintMixin() { }, _JsonPrettyPrintMixin_writeMap_closure: function _JsonPrettyPrintMixin_writeMap_closure(t0, t1) { this._box_0 = t0; this.keyValueList = t1; }, _JsonStringStringifier: function _JsonStringStringifier(t0, t1, t2) { this._sink = t0; this._seen = t1; this._toEncodable = t2; }, _JsonStringStringifierPretty: function _JsonStringStringifierPretty(t0, t1, t2, t3, t4) { var _ = this; _._indent = t0; _._JsonPrettyPrintMixin__indentLevel = t1; _._sink = t2; _._seen = t3; _._toEncodable = t4; }, Latin1Codec: function Latin1Codec() { }, Latin1Encoder: function Latin1Encoder() { }, Latin1Decoder: function Latin1Decoder(t0) { this._allowInvalid = t0; }, Utf8Decoder: function Utf8Decoder(t0) { this._allowMalformed = t0; }, _Utf8Decoder: function _Utf8Decoder(t0) { this.allowMalformed = t0; this._convert$_state = 16; this._charOrIndex = 0; }, __JsonStringStringifierPretty__JsonStringStringifier__JsonPrettyPrintMixin: function __JsonStringStringifierPretty__JsonStringStringifier__JsonPrettyPrintMixin() { }, Function_apply($function, positionalArguments) { return A.Primitives_applyFunction($function, positionalArguments, null); }, Error__objectToString(object) { if (object instanceof A.Closure) return object.toString$0(0); return "Instance of '" + A.Primitives_objectTypeName(object) + "'"; }, Error__throw(error, stackTrace) { error = A.wrapException(error); if (error == null) error = type$.Object._as(error); error.stack = stackTrace.toString$0(0); throw error; throw A.wrapException("unreachable"); }, DateTime$fromMillisecondsSinceEpoch(millisecondsSinceEpoch, isUtc) { var t1; if (Math.abs(millisecondsSinceEpoch) <= 864e13) t1 = false; else t1 = true; if (t1) A.throwExpression(A.ArgumentError$("DateTime is outside valid range: " + millisecondsSinceEpoch, null)); A.checkNotNullable(isUtc, "isUtc", type$.bool); return new A.DateTime(millisecondsSinceEpoch, isUtc); }, List_List$filled($length, fill, growable, $E) { var i, result = growable ? J.JSArray_JSArray$growable($length, $E) : J.JSArray_JSArray$fixed($length, $E); if ($length !== 0 && fill != null) for (i = 0; i < result.length; ++i) result[i] = fill; return result; }, List_List$from(elements, $E) { var t1, list = A._setArrayType([], $E._eval$1("JSArray<0>")); for (t1 = J.get$iterator$ax(elements); t1.moveNext$0();) B.JSArray_methods.add$1(list, $E._as(t1.get$current(t1))); return list; }, List_List$of(elements, growable, $E) { var t1 = A.List_List$_of(elements, $E); return t1; }, List_List$_of(elements, $E) { var list, t1; if (Array.isArray(elements)) return A._setArrayType(elements.slice(0), $E._eval$1("JSArray<0>")); list = A._setArrayType([], $E._eval$1("JSArray<0>")); for (t1 = J.get$iterator$ax(elements); t1.moveNext$0();) B.JSArray_methods.add$1(list, t1.get$current(t1)); return list; }, List_List$generate($length, generator, growable, $E) { var i, result = growable ? J.JSArray_JSArray$growable($length, $E) : J.JSArray_JSArray$fixed($length, $E); for (i = 0; i < $length; ++i) B.JSArray_methods.$indexSet(result, i, generator.call$1(i)); return result; }, String_String$fromCharCodes(charCodes, start, end) { var array, len; if (Array.isArray(charCodes)) { array = charCodes; len = array.length; end = A.RangeError_checkValidRange(start, end, len); return A.Primitives_stringFromCharCodes(start > 0 || end < len ? array.slice(start, end) : array); } if (type$.NativeUint8List._is(charCodes)) return A.Primitives_stringFromNativeUint8List(charCodes, start, A.RangeError_checkValidRange(start, end, charCodes.length)); return A.String__stringFromIterable(charCodes, start, end); }, String__stringFromIterable(charCodes, start, end) { var t1, it, i, list, _null = null; if (start < 0) throw A.wrapException(A.RangeError$range(start, 0, charCodes.length, _null, _null)); t1 = end == null; if (!t1 && end < start) throw A.wrapException(A.RangeError$range(end, start, charCodes.length, _null, _null)); it = J.get$iterator$ax(charCodes); for (i = 0; i < start; ++i) if (!it.moveNext$0()) throw A.wrapException(A.RangeError$range(start, 0, i, _null, _null)); list = []; if (t1) for (; it.moveNext$0();) list.push(it.get$current(it)); else for (i = start; i < end; ++i) { if (!it.moveNext$0()) throw A.wrapException(A.RangeError$range(end, start, i, _null, _null)); list.push(it.get$current(it)); } return A.Primitives_stringFromCharCodes(list); }, StringBuffer__writeAll(string, objects, separator) { var iterator = J.get$iterator$ax(objects); if (!iterator.moveNext$0()) return string; if (separator.length === 0) { do string += A.S(iterator.get$current(iterator)); while (iterator.moveNext$0()); } else { string += A.S(iterator.get$current(iterator)); for (; iterator.moveNext$0();) string = string + separator + A.S(iterator.get$current(iterator)); } return string; }, NoSuchMethodError$(receiver, memberName, positionalArguments, namedArguments) { return new A.NoSuchMethodError(receiver, memberName, positionalArguments, namedArguments); }, DateTime__fourDigits(n) { var absN = Math.abs(n), sign = n < 0 ? "-" : ""; if (absN >= 1000) return "" + n; if (absN >= 100) return sign + "0" + absN; if (absN >= 10) return sign + "00" + absN; return sign + "000" + absN; }, DateTime__threeDigits(n) { if (n >= 100) return "" + n; if (n >= 10) return "0" + n; return "00" + n; }, DateTime__twoDigits(n) { if (n >= 10) return "" + n; return "0" + n; }, Error_safeToString(object) { if (typeof object == "number" || A._isBool(object) || object == null) return J.toString$0$(object); if (typeof object == "string") return JSON.stringify(object); return A.Error__objectToString(object); }, AssertionError$(message) { return new A.AssertionError(message); }, ArgumentError$(message, $name) { return new A.ArgumentError(false, null, $name, message); }, ArgumentError$value(value, $name, message) { return new A.ArgumentError(true, value, $name, message); }, RangeError$range(invalidValue, minValue, maxValue, $name, message) { return new A.RangeError(minValue, maxValue, true, invalidValue, $name, "Invalid value"); }, RangeError_checkValidIndex(index, indexable) { var $length = indexable.get$length(indexable); if (0 > index || index >= $length) throw A.wrapException(A.IndexError$(index, indexable, "index", null, $length)); return index; }, RangeError_checkValidRange(start, end, $length) { if (0 > start || start > $length) throw A.wrapException(A.RangeError$range(start, 0, $length, "start", null)); if (end != null) { if (start > end || end > $length) throw A.wrapException(A.RangeError$range(end, start, $length, "end", null)); return end; } return $length; }, RangeError_checkNotNegative(value, $name) { if (value < 0) throw A.wrapException(A.RangeError$range(value, 0, null, $name, null)); return value; }, IndexError$(invalidValue, indexable, $name, message, $length) { var t1 = A._asInt($length == null ? J.get$length$asx(indexable) : $length); return new A.IndexError(t1, true, invalidValue, $name, "Index out of range"); }, UnsupportedError$(message) { return new A.UnsupportedError(message); }, UnimplementedError$(message) { return new A.UnimplementedError(message); }, StateError$(message) { return new A.StateError(message); }, ConcurrentModificationError$(modifiedObject) { return new A.ConcurrentModificationError(modifiedObject); }, Exception_Exception(message) { return new A._Exception(message); }, FormatException$(message, source, offset) { return new A.FormatException(message, source, offset); }, Iterable_Iterable$generate(count, generator, $E) { if (count <= 0) return new A.EmptyIterable($E._eval$1("EmptyIterable<0>")); return new A._GeneratorIterable(count, generator, $E._eval$1("_GeneratorIterable<0>")); }, Object_hash(object1, object2, object3, object4) { var t1, t2; if (B.C_SentinelValue === object3) { t1 = J.get$hashCode$(object1); object2 = J.get$hashCode$(object2); return A.SystemHash_finish(A.SystemHash_combine(A.SystemHash_combine($.$get$_hashSeed(), t1), object2)); } if (B.C_SentinelValue === object4) { t1 = J.get$hashCode$(object1); object2 = J.get$hashCode$(object2); object3 = J.get$hashCode$(object3); return A.SystemHash_finish(A.SystemHash_combine(A.SystemHash_combine(A.SystemHash_combine($.$get$_hashSeed(), t1), object2), object3)); } t1 = J.get$hashCode$(object1); object2 = J.get$hashCode$(object2); object3 = J.get$hashCode$(object3); object4 = J.get$hashCode$(object4); t2 = $.$get$_hashSeed(); return A.SystemHash_finish(A.SystemHash_combine(A.SystemHash_combine(A.SystemHash_combine(A.SystemHash_combine(t2, t1), object2), object3), object4)); }, print(object) { A.printString(A.S(object)); }, NoSuchMethodError_toString_closure: function NoSuchMethodError_toString_closure(t0, t1) { this._box_0 = t0; this.sb = t1; }, DateTime: function DateTime(t0, t1) { this._core$_value = t0; this.isUtc = t1; }, _Enum: function _Enum() { }, Error: function Error() { }, AssertionError: function AssertionError(t0) { this.message = t0; }, TypeError: function TypeError() { }, NullThrownError: function NullThrownError() { }, ArgumentError: function ArgumentError(t0, t1, t2, t3) { var _ = this; _._hasValue = t0; _.invalidValue = t1; _.name = t2; _.message = t3; }, RangeError: function RangeError(t0, t1, t2, t3, t4, t5) { var _ = this; _.start = t0; _.end = t1; _._hasValue = t2; _.invalidValue = t3; _.name = t4; _.message = t5; }, IndexError: function IndexError(t0, t1, t2, t3, t4) { var _ = this; _.length = t0; _._hasValue = t1; _.invalidValue = t2; _.name = t3; _.message = t4; }, NoSuchMethodError: function NoSuchMethodError(t0, t1, t2, t3) { var _ = this; _._core$_receiver = t0; _._core$_memberName = t1; _._core$_arguments = t2; _._namedArguments = t3; }, UnsupportedError: function UnsupportedError(t0) { this.message = t0; }, UnimplementedError: function UnimplementedError(t0) { this.message = t0; }, StateError: function StateError(t0) { this.message = t0; }, ConcurrentModificationError: function ConcurrentModificationError(t0) { this.modifiedObject = t0; }, OutOfMemoryError: function OutOfMemoryError() { }, StackOverflowError: function StackOverflowError() { }, CyclicInitializationError: function CyclicInitializationError(t0) { this.variableName = t0; }, _Exception: function _Exception(t0) { this.message = t0; }, FormatException: function FormatException(t0, t1, t2) { this.message = t0; this.source = t1; this.offset = t2; }, Iterable: function Iterable() { }, _GeneratorIterable: function _GeneratorIterable(t0, t1, t2) { this.length = t0; this._generator = t1; this.$ti = t2; }, Iterator: function Iterator() { }, MapEntry: function MapEntry(t0, t1, t2) { this.key = t0; this.value = t1; this.$ti = t2; }, Null: function Null() { }, Object: function Object() { }, _StringStackTrace: function _StringStackTrace() { }, StringBuffer: function StringBuffer(t0) { this._contents = t0; }, _convertNativeToDart_EventTarget(e) { var $window; if ("postMessage" in e) { $window = A._DOMWindowCrossFrame__createSafe(e); return $window; } else return type$.nullable_EventTarget._as(e); }, _DOMWindowCrossFrame__createSafe(w) { if (w === window) return type$.WindowBase._as(w); else return new A._DOMWindowCrossFrame(); }, HtmlElement: function HtmlElement() { }, AccessibleNodeList: function AccessibleNodeList() { }, AnchorElement: function AnchorElement() { }, AreaElement: function AreaElement() { }, Blob: function Blob() { }, CharacterData: function CharacterData() { }, CssPerspective: function CssPerspective() { }, CssRule: function CssRule() { }, CssStyleDeclaration: function CssStyleDeclaration() { }, CssStyleDeclarationBase: function CssStyleDeclarationBase() { }, CssStyleValue: function CssStyleValue() { }, CssTransformComponent: function CssTransformComponent() { }, CssTransformValue: function CssTransformValue() { }, CssUnparsedValue: function CssUnparsedValue() { }, DataTransferItemList: function DataTransferItemList() { }, DomException: function DomException() { }, DomRectList: function DomRectList() { }, DomRectReadOnly: function DomRectReadOnly() { }, DomStringList: function DomStringList() { }, DomTokenList: function DomTokenList() { }, Element: function Element() { }, Event: function Event() { }, EventTarget: function EventTarget() { }, File: function File() { }, FileList: function FileList() { }, FileWriter: function FileWriter() { }, FormElement: function FormElement() { }, Gamepad: function Gamepad() { }, History: function History() { }, HtmlCollection: function HtmlCollection() { }, ImageData: function ImageData() { }, Location: function Location() { }, MediaList: function MediaList() { }, MessageEvent: function MessageEvent() { }, MidiInputMap: function MidiInputMap() { }, MidiInputMap_keys_closure: function MidiInputMap_keys_closure(t0) { this.keys = t0; }, MidiOutputMap: function MidiOutputMap() { }, MidiOutputMap_keys_closure: function MidiOutputMap_keys_closure(t0) { this.keys = t0; }, MimeType: function MimeType() { }, MimeTypeArray: function MimeTypeArray() { }, Node: function Node() { }, NodeList: function NodeList() { }, Plugin: function Plugin() { }, PluginArray: function PluginArray() { }, RtcStatsReport: function RtcStatsReport() { }, RtcStatsReport_keys_closure: function RtcStatsReport_keys_closure(t0) { this.keys = t0; }, SelectElement: function SelectElement() { }, SourceBuffer: function SourceBuffer() { }, SourceBufferList: function SourceBufferList() { }, SpeechGrammar: function SpeechGrammar() { }, SpeechGrammarList: function SpeechGrammarList() { }, SpeechRecognitionResult: function SpeechRecognitionResult() { }, Storage: function Storage() { }, Storage_keys_closure: function Storage_keys_closure(t0) { this.keys = t0; }, StyleSheet: function StyleSheet() { }, TextTrack: function TextTrack() { }, TextTrackCue: function TextTrackCue() { }, TextTrackCueList: function TextTrackCueList() { }, TextTrackList: function TextTrackList() { }, TimeRanges: function TimeRanges() { }, Touch: function Touch() { }, TouchList: function TouchList() { }, TrackDefaultList: function TrackDefaultList() { }, Url: function Url() { }, VideoTrackList: function VideoTrackList() { }, Window: function Window() { }, WorkerGlobalScope: function WorkerGlobalScope() { }, _CssRuleList: function _CssRuleList() { }, _DomRect: function _DomRect() { }, _GamepadList: function _GamepadList() { }, _NamedNodeMap: function _NamedNodeMap() { }, _SpeechRecognitionResultList: function _SpeechRecognitionResultList() { }, _StyleSheetList: function _StyleSheetList() { }, ImmutableListMixin: function ImmutableListMixin() { }, FixedSizeListIterator: function FixedSizeListIterator(t0, t1, t2) { var _ = this; _._array = t0; _._html$_length = t1; _._position = -1; _._current = null; _.$ti = t2; }, _DOMWindowCrossFrame: function _DOMWindowCrossFrame() { }, _CssStyleDeclaration_JavaScriptObject_CssStyleDeclarationBase: function _CssStyleDeclaration_JavaScriptObject_CssStyleDeclarationBase() { }, _DomRectList_JavaScriptObject_ListMixin: function _DomRectList_JavaScriptObject_ListMixin() { }, _DomRectList_JavaScriptObject_ListMixin_ImmutableListMixin: function _DomRectList_JavaScriptObject_ListMixin_ImmutableListMixin() { }, _DomStringList_JavaScriptObject_ListMixin: function _DomStringList_JavaScriptObject_ListMixin() { }, _DomStringList_JavaScriptObject_ListMixin_ImmutableListMixin: function _DomStringList_JavaScriptObject_ListMixin_ImmutableListMixin() { }, _FileList_JavaScriptObject_ListMixin: function _FileList_JavaScriptObject_ListMixin() { }, _FileList_JavaScriptObject_ListMixin_ImmutableListMixin: function _FileList_JavaScriptObject_ListMixin_ImmutableListMixin() { }, _HtmlCollection_JavaScriptObject_ListMixin: function _HtmlCollection_JavaScriptObject_ListMixin() { }, _HtmlCollection_JavaScriptObject_ListMixin_ImmutableListMixin: function _HtmlCollection_JavaScriptObject_ListMixin_ImmutableListMixin() { }, _MidiInputMap_JavaScriptObject_MapMixin: function _MidiInputMap_JavaScriptObject_MapMixin() { }, _MidiOutputMap_JavaScriptObject_MapMixin: function _MidiOutputMap_JavaScriptObject_MapMixin() { }, _MimeTypeArray_JavaScriptObject_ListMixin: function _MimeTypeArray_JavaScriptObject_ListMixin() { }, _MimeTypeArray_JavaScriptObject_ListMixin_ImmutableListMixin: function _MimeTypeArray_JavaScriptObject_ListMixin_ImmutableListMixin() { }, _NodeList_JavaScriptObject_ListMixin: function _NodeList_JavaScriptObject_ListMixin() { }, _NodeList_JavaScriptObject_ListMixin_ImmutableListMixin: function _NodeList_JavaScriptObject_ListMixin_ImmutableListMixin() { }, _PluginArray_JavaScriptObject_ListMixin: function _PluginArray_JavaScriptObject_ListMixin() { }, _PluginArray_JavaScriptObject_ListMixin_ImmutableListMixin: function _PluginArray_JavaScriptObject_ListMixin_ImmutableListMixin() { }, _RtcStatsReport_JavaScriptObject_MapMixin: function _RtcStatsReport_JavaScriptObject_MapMixin() { }, _SourceBufferList_EventTarget_ListMixin: function _SourceBufferList_EventTarget_ListMixin() { }, _SourceBufferList_EventTarget_ListMixin_ImmutableListMixin: function _SourceBufferList_EventTarget_ListMixin_ImmutableListMixin() { }, _SpeechGrammarList_JavaScriptObject_ListMixin: function _SpeechGrammarList_JavaScriptObject_ListMixin() { }, _SpeechGrammarList_JavaScriptObject_ListMixin_ImmutableListMixin: function _SpeechGrammarList_JavaScriptObject_ListMixin_ImmutableListMixin() { }, _Storage_JavaScriptObject_MapMixin: function _Storage_JavaScriptObject_MapMixin() { }, _TextTrackCueList_JavaScriptObject_ListMixin: function _TextTrackCueList_JavaScriptObject_ListMixin() { }, _TextTrackCueList_JavaScriptObject_ListMixin_ImmutableListMixin: function _TextTrackCueList_JavaScriptObject_ListMixin_ImmutableListMixin() { }, _TextTrackList_EventTarget_ListMixin: function _TextTrackList_EventTarget_ListMixin() { }, _TextTrackList_EventTarget_ListMixin_ImmutableListMixin: function _TextTrackList_EventTarget_ListMixin_ImmutableListMixin() { }, _TouchList_JavaScriptObject_ListMixin: function _TouchList_JavaScriptObject_ListMixin() { }, _TouchList_JavaScriptObject_ListMixin_ImmutableListMixin: function _TouchList_JavaScriptObject_ListMixin_ImmutableListMixin() { }, __CssRuleList_JavaScriptObject_ListMixin: function __CssRuleList_JavaScriptObject_ListMixin() { }, __CssRuleList_JavaScriptObject_ListMixin_ImmutableListMixin: function __CssRuleList_JavaScriptObject_ListMixin_ImmutableListMixin() { }, __GamepadList_JavaScriptObject_ListMixin: function __GamepadList_JavaScriptObject_ListMixin() { }, __GamepadList_JavaScriptObject_ListMixin_ImmutableListMixin: function __GamepadList_JavaScriptObject_ListMixin_ImmutableListMixin() { }, __NamedNodeMap_JavaScriptObject_ListMixin: function __NamedNodeMap_JavaScriptObject_ListMixin() { }, __NamedNodeMap_JavaScriptObject_ListMixin_ImmutableListMixin: function __NamedNodeMap_JavaScriptObject_ListMixin_ImmutableListMixin() { }, __SpeechRecognitionResultList_JavaScriptObject_ListMixin: function __SpeechRecognitionResultList_JavaScriptObject_ListMixin() { }, __SpeechRecognitionResultList_JavaScriptObject_ListMixin_ImmutableListMixin: function __SpeechRecognitionResultList_JavaScriptObject_ListMixin_ImmutableListMixin() { }, __StyleSheetList_JavaScriptObject_ListMixin: function __StyleSheetList_JavaScriptObject_ListMixin() { }, __StyleSheetList_JavaScriptObject_ListMixin_ImmutableListMixin: function __StyleSheetList_JavaScriptObject_ListMixin_ImmutableListMixin() { }, _convertNativeToDart_Value(value) { var values, i; if (value == null) return value; if (typeof value == "string" || typeof value == "number" || A._isBool(value)) return value; if (A.isJavaScriptSimpleObject(value)) return A.convertNativeToDart_Dictionary(value); if (Array.isArray(value)) { values = []; for (i = 0; i < value.length; ++i) values.push(A._convertNativeToDart_Value(value[i])); return values; } return value; }, convertNativeToDart_Dictionary(object) { var dict, keys, t1, _i, key; if (object == null) return null; dict = A.LinkedHashMap_LinkedHashMap$_empty(type$.String, type$.dynamic); keys = Object.getOwnPropertyNames(object); for (t1 = keys.length, _i = 0; _i < keys.length; keys.length === t1 || (0, A.throwConcurrentModificationError)(keys), ++_i) { key = keys[_i]; dict.$indexSet(0, key, A._convertNativeToDart_Value(object[key])); } return dict; }, isJavaScriptSimpleObject(value) { var proto = Object.getPrototypeOf(value); return proto === Object.prototype || proto === null; }, _AcceptStructuredClone: function _AcceptStructuredClone() { }, _AcceptStructuredClone_walk_closure: function _AcceptStructuredClone_walk_closure(t0, t1) { this._box_0 = t0; this.$this = t1; }, _AcceptStructuredCloneDart2Js: function _AcceptStructuredCloneDart2Js(t0, t1) { this.values = t0; this.copies = t1; this.mustCopy = false; }, KeyRange: function KeyRange() { }, Request: function Request() { }, VersionChangeEvent: function VersionChangeEvent() { }, _callDartFunction(callback, captureThis, $self, $arguments) { var arguments0, t1, dartArgs; A._asBool(captureThis); type$.List_dynamic._as($arguments); if (captureThis) { arguments0 = [$self]; B.JSArray_methods.addAll$1(arguments0, $arguments); $arguments = arguments0; } t1 = type$.dynamic; dartArgs = A.List_List$from(J.map$1$1$ax($arguments, A.js___convertToDart$closure(), t1), t1); return A._convertToJS(A.Function_apply(type$.Function._as(callback), dartArgs)); }, _defineProperty(o, $name, value) { var exception; try { if (Object.isExtensible(o) && !Object.prototype.hasOwnProperty.call(o, $name)) { Object.defineProperty(o, $name, {value: value}); return true; } } catch (exception) { } return false; }, _getOwnProperty(o, $name) { if (Object.prototype.hasOwnProperty.call(o, $name)) return o[$name]; return null; }, _convertToJS(o) { if (o == null || typeof o == "string" || typeof o == "number" || A._isBool(o)) return o; if (o instanceof A.JsObject) return o._js$_jsObject; if (A.isBrowserObject(o)) return o; if (type$.TypedData._is(o)) return o; if (o instanceof A.DateTime) return A.Primitives_lazyAsJsDate(o); if (type$.Function._is(o)) return A._getJsProxy(o, "$dart_jsFunction", new A._convertToJS_closure()); return A._getJsProxy(o, "_$dart_jsObject", new A._convertToJS_closure0($.$get$_dartProxyCtor())); }, _getJsProxy(o, propertyName, createProxy) { var jsProxy = A._getOwnProperty(o, propertyName); if (jsProxy == null) { jsProxy = createProxy.call$1(o); A._defineProperty(o, propertyName, jsProxy); } return jsProxy; }, _convertToDart(o) { if (o == null || typeof o == "string" || typeof o == "number" || typeof o == "boolean") return o; else if (o instanceof Object && A.isBrowserObject(o)) return o; else if (o instanceof Object && type$.TypedData._is(o)) return o; else if (o instanceof Date) return A.DateTime$fromMillisecondsSinceEpoch(A._asInt(o.getTime()), false); else if (o.constructor === $.$get$_dartProxyCtor()) return o.o; else return A._wrapToDart(o); }, _wrapToDart(o) { if (typeof o == "function") return A._getDartProxy(o, $.$get$DART_CLOSURE_PROPERTY_NAME(), new A._wrapToDart_closure()); if (o instanceof Array) return A._getDartProxy(o, $.$get$_DART_OBJECT_PROPERTY_NAME(), new A._wrapToDart_closure0()); return A._getDartProxy(o, $.$get$_DART_OBJECT_PROPERTY_NAME(), new A._wrapToDart_closure1()); }, _getDartProxy(o, propertyName, createProxy) { var dartProxy = A._getOwnProperty(o, propertyName); if (dartProxy == null || !(o instanceof Object)) { dartProxy = createProxy.call$1(o); A._defineProperty(o, propertyName, dartProxy); } return dartProxy; }, _convertDartFunctionFast(f) { var ret, existing = f.$dart_jsFunction; if (existing != null) return existing; ret = function(_call, f) { return function() { return _call(f, Array.prototype.slice.apply(arguments)); }; }(A._callDartFunctionFast, f); ret[$.$get$DART_CLOSURE_PROPERTY_NAME()] = f; f.$dart_jsFunction = ret; return ret; }, _callDartFunctionFast(callback, $arguments) { type$.List_dynamic._as($arguments); return A.Function_apply(type$.Function._as(callback), $arguments); }, allowInterop(f, $F) { if (typeof f == "function") return f; else return $F._as(A._convertDartFunctionFast(f)); }, _convertToJS_closure: function _convertToJS_closure() { }, _convertToJS_closure0: function _convertToJS_closure0(t0) { this.ctor = t0; }, _wrapToDart_closure: function _wrapToDart_closure() { }, _wrapToDart_closure0: function _wrapToDart_closure0() { }, _wrapToDart_closure1: function _wrapToDart_closure1() { }, JsObject: function JsObject(t0) { this._js$_jsObject = t0; }, JsFunction: function JsFunction(t0) { this._js$_jsObject = t0; }, JsArray: function JsArray(t0, t1) { this._js$_jsObject = t0; this.$ti = t1; }, _JsArray_JsObject_ListMixin: function _JsArray_JsObject_ListMixin() { }, jsify(object) { if (!type$.Map_dynamic_dynamic._is(object) && !type$.Iterable_dynamic._is(object)) throw A.wrapException(A.ArgumentError$("object must be a Map or Iterable", null)); return A._convertDataTree(object); }, _convertDataTree(data) { var t1 = new A._convertDataTree__convert(new A._IdentityHashMap(type$._IdentityHashMap_dynamic_dynamic)).call$1(data); t1.toString; return t1; }, promiseToFuture(jsPromise, $T) { var t1 = new A._Future($.Zone__current, $T._eval$1("_Future<0>")), completer = new A._AsyncCompleter(t1, $T._eval$1("_AsyncCompleter<0>")); jsPromise.then(A.convertDartClosureToJS(new A.promiseToFuture_closure(completer, $T), 1), A.convertDartClosureToJS(new A.promiseToFuture_closure0(completer), 1)); return t1; }, _convertDataTree__convert: function _convertDataTree__convert(t0) { this._convertedObjects = t0; }, NullRejectionException: function NullRejectionException(t0) { this.isUndefined = t0; }, promiseToFuture_closure: function promiseToFuture_closure(t0, t1) { this.completer = t0; this.T = t1; }, promiseToFuture_closure0: function promiseToFuture_closure0(t0) { this.completer = t0; }, Length: function Length() { }, LengthList: function LengthList() { }, Number: function Number() { }, NumberList: function NumberList() { }, PointList: function PointList() { }, StringList: function StringList() { }, Transform: function Transform() { }, TransformList: function TransformList() { }, _LengthList_JavaScriptObject_ListMixin: function _LengthList_JavaScriptObject_ListMixin() { }, _LengthList_JavaScriptObject_ListMixin_ImmutableListMixin: function _LengthList_JavaScriptObject_ListMixin_ImmutableListMixin() { }, _NumberList_JavaScriptObject_ListMixin: function _NumberList_JavaScriptObject_ListMixin() { }, _NumberList_JavaScriptObject_ListMixin_ImmutableListMixin: function _NumberList_JavaScriptObject_ListMixin_ImmutableListMixin() { }, _StringList_JavaScriptObject_ListMixin: function _StringList_JavaScriptObject_ListMixin() { }, _StringList_JavaScriptObject_ListMixin_ImmutableListMixin: function _StringList_JavaScriptObject_ListMixin_ImmutableListMixin() { }, _TransformList_JavaScriptObject_ListMixin: function _TransformList_JavaScriptObject_ListMixin() { }, _TransformList_JavaScriptObject_ListMixin_ImmutableListMixin: function _TransformList_JavaScriptObject_ListMixin_ImmutableListMixin() { }, AudioBuffer: function AudioBuffer() { }, AudioParamMap: function AudioParamMap() { }, AudioParamMap_keys_closure: function AudioParamMap_keys_closure(t0) { this.keys = t0; }, AudioTrackList: function AudioTrackList() { }, BaseAudioContext: function BaseAudioContext() { }, OfflineAudioContext: function OfflineAudioContext() { }, _AudioParamMap_JavaScriptObject_MapMixin: function _AudioParamMap_JavaScriptObject_MapMixin() { }, ArchiveException$(message) { return new A.ArchiveException(message, null, null); }, ArchiveException: function ArchiveException(t0, t1, t2) { this.message = t0; this.source = t1; this.offset = t2; }, InputStream$(data, byteOrder, $length, start) { var t1, t2; if (type$.TypedData._is(data)) t1 = A.NativeUint8List_NativeUint8List$view(data.buffer, data.byteOffset, data.byteLength); else t1 = type$.List_int._is(data) ? data : A.List_List$from(type$.Iterable_dynamic._as(data), type$.int); t2 = new A.InputStream(t1, start, start, byteOrder); t2.__InputStream__length = $length == null ? t1.length : $length; return t2; }, InputStreamBase: function InputStreamBase() { }, InputStream: function InputStream(t0, t1, t2, t3) { var _ = this; _.buffer = t0; _.offset = t1; _.start = t2; _.byteOrder = t3; _.__InputStream__length = $; }, OutputStream$(byteOrder, size) { var t1 = size == null ? 32768 : size; return new A.OutputStream(byteOrder, new Uint8Array(t1)); }, OutputStreamBase: function OutputStreamBase() { }, OutputStream: function OutputStream(t0, t1) { this.length = 0; this.byteOrder = t0; this._output_stream$_buffer = t1; }, _ZLibDecoder: function _ZLibDecoder() { }, Deflate__smaller(tree, n, m, depth) { var t3, t1 = n * 2, t2 = tree.length; if (!(t1 >= 0 && t1 < t2)) return A.ioore(tree, t1); t1 = tree[t1]; t3 = m * 2; if (!(t3 >= 0 && t3 < t2)) return A.ioore(tree, t3); t3 = tree[t3]; if (t1 >= t3) if (t1 === t3) { if (!(n >= 0 && n < 573)) return A.ioore(depth, n); t1 = depth[n]; if (!(m >= 0 && m < 573)) return A.ioore(depth, m); t1 = t1 <= depth[m]; } else t1 = false; else t1 = true; return t1; }, _HuffmanTree$() { return new A._HuffmanTree(); }, _HuffmanTree__genCodes(tree, maxCode, blCount) { var code, bits, t1, n, t2, t3, len, nextCode = new Uint16Array(16); for (code = 0, bits = 1; bits <= 15; ++bits) { code = code + blCount[bits - 1] << 1 >>> 0; if (!(bits < 16)) return A.ioore(nextCode, bits); nextCode[bits] = code; } for (t1 = tree.length, n = 0; n <= maxCode; ++n) { t2 = n * 2; t3 = t2 + 1; if (!(t3 < t1)) return A.ioore(tree, t3); len = tree[t3]; if (len === 0) continue; if (!(len < 16)) return A.ioore(nextCode, len); t3 = nextCode[len]; if (!(len < 16)) return A.ioore(nextCode, len); nextCode[len] = t3 + 1; t3 = A._HuffmanTree__reverseBits(t3, len); if (!(t2 < t1)) return A.ioore(tree, t2); tree[t2] = t3; } }, _HuffmanTree__reverseBits(code, len) { var code0, res = 0; do { code0 = A._rshift(code, 1); res = (res | code & 1) << 1 >>> 0; if (--len, len > 0) { code = code0; continue; } else break; } while (true); return A._rshift(res, 1); }, _HuffmanTree__dCode(dist) { var t1; if (dist < 256) { if (!(dist >= 0)) return A.ioore(B.List_AyI, dist); t1 = B.List_AyI[dist]; } else { t1 = 256 + A._rshift(dist, 7); if (!(t1 < 512)) return A.ioore(B.List_AyI, t1); t1 = B.List_AyI[t1]; } return t1; }, _StaticTree$(staticTree, extraBits, extraBase, numElements, maxLength) { return new A._StaticTree(staticTree, extraBits, extraBase, numElements, maxLength); }, _rshift(number, bits) { if (number >= 0) return B.JSInt_methods.$shr(number, bits); else return B.JSInt_methods.$shr(number, bits) + B.JSInt_methods._shlPositive$1(2, (~bits >>> 0) + 65536 & 65535); }, Deflate: function Deflate(t0, t1, t2, t3, t4, t5, t6, t7) { var _ = this; _.total = _.crc32 = 0; _._deflate$_input = t0; _._deflate$_output = t1; _._status = null; _.__Deflate__pending = _.__Deflate__pendingOut = _.__Deflate__pendingBufferSize = _.__Deflate__pendingBuffer = $; _._dataType = 2; _.__Deflate__strStart = _.__Deflate__matchAvailable = _.__Deflate__prevMatch = _.__Deflate__matchLength = _.__Deflate__blockStart = _.__Deflate__hashShift = _.__Deflate__hashMask = _.__Deflate__hashBits = _.__Deflate__hashSize = _.__Deflate__insertHash = _.__Deflate__head = _.__Deflate__prev = _.__Deflate__actualWindowSize = _.__Deflate__window = _.__Deflate__windowMask = _.__Deflate__windowBits = _.__Deflate__windowSize = $; _._matchStart = 0; _.__Deflate__bitLengthTree = _.__Deflate__dynamicDistTree = _.__Deflate__dynamicLengthTree = _.__Deflate__strategy = _.__Deflate__level = _.__Deflate__prevLength = _.__Deflate__lookAhead = $; _._lDesc = t2; _._dDesc = t3; _._blDesc = t4; _._bitLengthCount = t5; _._heap = t6; _.__Deflate__heapMax = _.__Deflate__heapLen = $; _._depth = t7; _.__Deflate__numValidBits = _.__Deflate__bitBuffer = _.__Deflate__lastEOBLen = _.__Deflate__matches = _.__Deflate__staticLen = _.__Deflate__optimalLen = _.__Deflate__dbuf = _.__Deflate__lastLit = _.__Deflate__litBufferSize = _.__Deflate__lbuf = $; }, _DeflaterConfig: function _DeflaterConfig(t0, t1, t2, t3, t4) { var _ = this; _.goodLength = t0; _.maxLazy = t1; _.niceLength = t2; _.maxChain = t3; _.$function = t4; }, _HuffmanTree: function _HuffmanTree() { this.___HuffmanTree_staticDesc = this.___HuffmanTree_maxCode = this.___HuffmanTree_dynamicTree = $; }, _StaticTree: function _StaticTree(t0, t1, t2, t3, t4) { var _ = this; _.staticTree = t0; _.extraBits = t1; _.extraBase = t2; _.numElements = t3; _.maxLength = t4; }, HuffmanTable$(lengths) { var t1 = new A.HuffmanTable(); t1.HuffmanTable$1(lengths); return t1; }, HuffmanTable: function HuffmanTable() { this.__HuffmanTable_table = $; this.maxCodeLength = 0; this.minCodeLength = 2147483647; }, Inflate$(bytes) { var t1 = A.HuffmanTable$(B.List_2Bc), t2 = A.HuffmanTable$(B.List_X3d); t2 = new A.Inflate(A.InputStream$(bytes, 0, null, 0), A.OutputStream$(0, null), t1, t2); t2.inputSet = true; t2._inflate$0(); return t2; }, Inflate: function Inflate(t0, t1, t2, t3) { var _ = this; _.__Inflate_input = t0; _.inputSet = false; _.output = t1; _._bitBufferLen = _._bitBuffer = 0; _._fixedLiteralLengthTable = t2; _._fixedDistanceTable = t3; }, ZLibDecoderBase: function ZLibDecoderBase() { }, ZLibDecoder: function ZLibDecoder() { }, ZLibEncoder: function ZLibEncoder() { }, BlurHash_BlurHash$encode(image, numCompX, numCompY) { var data, components, t1, i, t2, y, t3, x, normalisation, hash; if (numCompX < 1 || numCompX > 9 || numCompY < 1 || numCompY > 9) throw A.wrapException(new A.BlurHashEncodeException("BlurHash components must be between 1 and 9.")); data = image.getBytes$1$format(B.Format_2); components = J.JSArray_JSArray$allocateGrowable(numCompY, type$.List_ColorTriplet); for (t1 = type$.ColorTriplet, i = 0; i < numCompY; ++i) components[i] = A.List_List$filled(numCompX, new A.ColorTriplet(0, 0, 0), false, t1); for (t1 = image.width, t2 = image.height, y = 0; y < numCompY; ++y) for (t3 = y === 0, x = 0; x < numCompX; ++x) { normalisation = x === 0 && t3 ? 1 : 2; if (!(y < components.length)) return A.ioore(components, y); B.JSArray_methods.$indexSet(components[y], x, A._multiplyBasisFunction(data, t1, t2, x, y, normalisation)); } hash = A._encodeComponents(components); if (0 >= components.length) return A.ioore(components, 0); return new A.BlurHash(hash); }, _encodeComponents(components) { var numCompX, factors, count, i, j, count0, t2, t1 = components.length; if (0 >= t1) return A.ioore(components, 0); numCompX = components[0].length; factors = A.List_List$filled(numCompX * t1, new A.ColorTriplet(0, 0, 0), false, type$.ColorTriplet); for (count = 0, i = 0; i < t1; ++i) for (j = 0; j < numCompX; ++j, count = count0) { count0 = count + 1; if (!(i < components.length)) return A.ioore(components, i); t2 = components[i]; if (!(j < t2.length)) return A.ioore(t2, j); B.JSArray_methods.$indexSet(factors, count, t2[j]); } return A._encodeFactors(factors, numCompX, t1); }, _encodeFactors(factors, numCompX, numCompY) { var t2, quantisedMax, maxVal, _i, factor, t3, r, g, dc = B.JSArray_methods.get$first(factors), ac = A.SubListIterable$(factors, 1, null, A._arrayInstanceType(factors)._precomputed1).toList$0(0), t1 = "" + A.encode83(numCompX - 1 + (numCompY - 1) * 9, 1); if (ac.length !== 0) { t2 = A._arrayInstanceType(ac); quantisedMax = Math.max(0, Math.min(82, B.JSNumber_methods.floor$0(new A.MappedListIterable(ac, t2._eval$1("double(1)")._as(A.blurhash___maxChannelAbs$closure()), t2._eval$1("MappedListIterable<1,double>")).reduce$1(0, B.CONSTANT) * 166 - 0.5))); maxVal = (quantisedMax + 1) / 166; t1 += A.encode83(quantisedMax, 1); } else { t1 += A.encode83(0, 1); maxVal = 1; } t1 += A.encode83((A.linearTosRgb(dc.r) << 16 >>> 0) + (A.linearTosRgb(dc.g) << 8 >>> 0) + A.linearTosRgb(dc.b), 4); for (t2 = ac.length, _i = 0; _i < ac.length; ac.length === t2 || (0, A.throwConcurrentModificationError)(ac), ++_i, t1 = t3) { factor = ac[_i]; t3 = factor.r / maxVal; r = B.JSNumber_methods.floor$0(Math.max(0, Math.min(18, Math.pow(Math.abs(t3), 0.5) * J.get$sign$in(t3) * 9 + 9.5))); t3 = factor.g / maxVal; g = B.JSNumber_methods.floor$0(Math.max(0, Math.min(18, Math.pow(Math.abs(t3), 0.5) * J.get$sign$in(t3) * 9 + 9.5))); t3 = factor.b / maxVal; t3 = t1 + A.encode83(r * 19 * 19 + g * 19 + B.JSNumber_methods.floor$0(Math.max(0, Math.min(18, Math.pow(Math.abs(t3), 0.5) * J.get$sign$in(t3) * 9 + 9.5))), 2); } return t1.charCodeAt(0) == 0 ? t1 : t1; }, _maxChannelAbs(c) { type$.ColorTriplet._as(c); return Math.max(Math.abs(c.r), Math.max(Math.abs(c.g), Math.abs(c.b))); }, _multiplyBasisFunction(pixels, width, height, x, y, normalisation) { var t1, t2, t3, r, g, b, i, t4, t5, t6, t7, j, basis, t8, t9, scale, bytesPerRow = width * 4; for (t1 = 3.141592653589793 * x, t2 = 3.141592653589793 * y, t3 = pixels.length, r = 0, g = 0, b = 0, i = 0; i < width; ++i) for (t4 = t1 * i / width, t5 = 4 * i, t6 = t5 + 1, t7 = t5 + 2, j = 0; j < height; ++j) { basis = normalisation * Math.cos(t4) * Math.cos(t2 * j / height); t8 = j * bytesPerRow; t9 = t5 + t8; if (!(t9 >= 0 && t9 < t3)) return A.ioore(pixels, t9); r += basis * A.sRgbToLinear(pixels[t9]); t9 = t6 + t8; if (!(t9 >= 0 && t9 < t3)) return A.ioore(pixels, t9); g += basis * A.sRgbToLinear(pixels[t9]); t8 = t7 + t8; if (!(t8 >= 0 && t8 < t3)) return A.ioore(pixels, t8); b += basis * A.sRgbToLinear(pixels[t8]); } scale = 1 / (width * height); return new A.ColorTriplet(r * scale, g * scale, b * scale); }, BlurHash: function BlurHash(t0) { this.hash = t0; }, BlurHashEncodeException: function BlurHashEncodeException(t0) { this.message = t0; }, sRgbToLinear(value) { var v = value / 255; if (v <= 0.04045) return v / 12.92; return Math.pow((v + 0.055) / 1.055, 2.4); }, linearTosRgb(value) { var v = B.JSNumber_methods.clamp$2(value, 0, 1); if (v <= 0.0031308) return B.JSNumber_methods.toInt$0(v * 12.92 * 255 + 0.5); return B.JSNumber_methods.toInt$0((1.055 * Math.pow(v, 0.4166666666666667) - 0.055) * 255 + 0.5); }, ColorTriplet: function ColorTriplet(t0, t1, t2) { this.r = t0; this.g = t1; this.b = t2; }, ExifData$from(other) { var t1 = type$.int, t2 = type$.dynamic; t1 = new A.ExifData(other == null ? A.LinkedHashMap_LinkedHashMap$_empty(t1, t2) : A.LinkedHashMap_LinkedHashMap$from(other.data, t1, t2)); t1.ExifData$from$1(other); return t1; }, ExifData: function ExifData(t0) { this.rawData = null; this.data = t0; }, BitmapFileHeader$(b) { var t2, t3, t1 = new A.BitmapFileHeader(); if (!A.BitmapFileHeader_isValidFile(b)) A.throwExpression(A.ImageException$("Not a bitmap file.")); b.offset += 2; t2 = b.readUint32$0(); t3 = $.$get$__uint32(); t3[0] = t2; t2 = $.$get$__uint32ToInt32(); if (0 >= t2.length) return A.ioore(t2, 0); t1.__BitmapFileHeader_fileLength = t2[0]; b.offset += 4; t3[0] = b.readUint32$0(); if (0 >= t2.length) return A.ioore(t2, 0); t1.__BitmapFileHeader_offset = t2[0]; return t1; }, BitmapFileHeader_isValidFile(b) { if (b.end - b.offset < 2) return false; return A.InputBuffer$from(b, null, 0).readUint16$0() === 19778; }, BmpInfo$(p, fileHeader) { var t5, t6, t7, t8, t9, compression, t10, t1 = fileHeader == null ? A.BitmapFileHeader$(p) : fileHeader, t2 = p.readUint32$0(), t3 = p.readUint32$0(), t4 = $.$get$__uint32(); t4[0] = t3; t3 = $.$get$__uint32ToInt32(); if (0 >= t3.length) return A.ioore(t3, 0); t5 = t3[0]; t4[0] = p.readUint32$0(); if (0 >= t3.length) return A.ioore(t3, 0); t6 = t3[0]; t7 = p.readUint16$0(); t8 = p.readUint16$0(); t9 = p.readUint32$0(); compression = A.LinkedHashMap_LinkedHashMap$_literal([0, B.BitmapCompression_1, 3, B.BitmapCompression_0], type$.int, type$.BitmapCompression).$index(0, t9); if (compression == null) A.throwExpression(A.ImageException$("Bitmap compression " + t9 + " is not supported yet.")); t9 = p.readUint32$0(); t4[0] = p.readUint32$0(); if (0 >= t3.length) return A.ioore(t3, 0); t10 = t3[0]; t4[0] = p.readUint32$0(); if (0 >= t3.length) return A.ioore(t3, 0); t3 = new A.BmpInfo(t1, t6, t5, t2, t7, t8, compression, t9, t10, t3[0], p.readUint32$0(), p.readUint32$0()); t3.BmpInfo$2$fileHeader(p, fileHeader); return t3; }, BitmapCompression: function BitmapCompression(t0, t1) { this.index = t0; this._core$_name = t1; }, BitmapFileHeader: function BitmapFileHeader() { this.__BitmapFileHeader_offset = this.__BitmapFileHeader_fileLength = $; }, BmpInfo: function BmpInfo(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11) { var _ = this; _.file = t0; _._bmp_info$_height = t1; _.BmpInfo_width = t2; _.headerSize = t3; _.planes = t4; _.bpp = t5; _.compression = t6; _.imageSize = t7; _.xppm = t8; _.yppm = t9; _.totalColors = t10; _.importantColors = t11; _.colorPalette = _.v5alphaMask = _.v5blueMask = _.v5greenMask = _.v5redMask = null; _.height = _.width = 0; }, BmpInfo_readPalette_closure: function BmpInfo_readPalette_closure(t0, t1, t2) { this.$this = t0; this.p = t1; this.colorBytes = t2; }, BmpDecoder: function BmpDecoder() { this.__BmpDecoder__input = $; this.info = null; }, BmpDecoder_decodeFrame_closure: function BmpDecoder_decodeFrame_closure(t0, t1, t2) { this._box_0 = t0; this.image = t1; this.line = t2; }, DibDecoder: function DibDecoder() { this.__BmpDecoder__input = $; this.info = null; }, BmpEncoder: function BmpEncoder() { }, CurEncoder: function CurEncoder() { }, DecodeInfo: function DecodeInfo() { }, Decoder: function Decoder() { }, Encoder: function Encoder() { }, ExrAttribute: function ExrAttribute() { }, InternalExrB44Compressor: function InternalExrB44Compressor(t0, t1) { var _ = this; _._numScanLines = t0; _.decodedHeight = _.decodedWidth = 0; _._header = t1; }, ExrChannel: function ExrChannel() { var _ = this; _.name = null; _.__ExrChannel_ySampling = _.__ExrChannel_xSampling = _.__ExrChannel_size = _.__ExrChannel_type = $; }, ExrCompressor_ExrCompressor(type, hdr, maxScanLineSize, numScanLines) { var t1, t2; switch (type) { case 1: return new A.InternalExrRleCompressor(hdr); case 2: return new A.InternalExrZipCompressor(numScanLines == null ? 1 : numScanLines, hdr); case 3: return new A.InternalExrZipCompressor(numScanLines == null ? 16 : numScanLines, hdr); case 4: t1 = numScanLines == null ? 32 : numScanLines; t2 = new A.InternalExrPizCompressor(maxScanLineSize, t1, hdr); t2.InternalExrPizCompressor$3(hdr, maxScanLineSize, t1); return t2; case 5: return new A.InternalExrPxr24Compressor(maxScanLineSize, numScanLines == null ? 16 : numScanLines, hdr); case 6: return new A.InternalExrB44Compressor(numScanLines == null ? 32 : numScanLines, hdr); case 7: return new A.InternalExrB44Compressor(numScanLines == null ? 32 : numScanLines, hdr); default: throw A.wrapException(A.ImageException$("Invalid compression type: " + type)); } }, ExrCompressor: function ExrCompressor() { }, InternalExrCompressor: function InternalExrCompressor() { }, ExrHuffman_uncompress(compressed, nCompressed, raw, nRaw) { var start, im, iM, nBits, t1, freq, hdec, _i; if (nCompressed === 0) { if (nRaw !== 0) throw A.wrapException(A.ImageException$("Incomplete huffman data")); return; } start = compressed.offset; im = compressed.readUint32$0(); iM = compressed.readUint32$0(); compressed.offset += 4; nBits = compressed.readUint32$0(); if (im < 65537) t1 = iM >= 65537; else t1 = true; if (t1) throw A.wrapException(A.ImageException$("Invalid huffman table size")); compressed.offset += 4; freq = A.List_List$filled(65537, 0, false, type$.int); hdec = J.JSArray_JSArray$allocateFixed(16384, type$.ExrHufDec); for (_i = 0; _i < 16384; ++_i) hdec[_i] = new A.ExrHufDec(); A.ExrHuffman_unpackEncTable(compressed, nCompressed - 20, im, iM, freq); if (nBits > 8 * (nCompressed - (compressed.offset - start))) throw A.wrapException(A.ImageException$("Error in header for Huffman-encoded data (invalid number of bits).")); A.ExrHuffman_buildDecTable(freq, im, iM, hdec); A.ExrHuffman_decode(freq, hdec, compressed, nBits, iM, nRaw, raw); }, ExrHuffman_decode(hcode, hdecod, input, ni, rlc, no, out) { var t1, oi, t2, t3, pl, j, l, oi0, i, _s45_ = "Error in Huffman-encoded data (invalid code).", c_lc = A._setArrayType([0, 0], type$.JSArray_int), ie = input.offset + B.JSInt_methods._tdivFast$1(ni + 7, 8); for (t1 = hdecod.length, oi = 0; input.offset < ie;) { A.ExrHuffman_getChar(c_lc, input); for (; t2 = c_lc[1], t2 >= 14;) { t3 = B.JSInt_methods.$shr(c_lc[0], t2 - 14) & 16383; if (!(t3 < t1)) return A.ioore(hdecod, t3); pl = hdecod[t3]; t3 = pl.len; if (t3 !== 0) { B.JSArray_methods.$indexSet(c_lc, 1, t2 - t3); oi = A.ExrHuffman_getCode(pl.lit, rlc, c_lc, input, out, oi, no); } else { if (pl.p == null) throw A.wrapException(A.ImageException$(_s45_)); for (j = 0; j < pl.lit; ++j) { t2 = pl.p; if (!(j < t2.length)) return A.ioore(t2, j); t2 = t2[j]; if (!(t2 < 65537)) return A.ioore(hcode, t2); l = hcode[t2] & 63; while (true) { t2 = c_lc[1]; if (!(t2 < l && input.offset < ie)) break; A.ExrHuffman_getChar(c_lc, input); } if (t2 >= l) { t3 = pl.p; if (!(j < t3.length)) return A.ioore(t3, j); t3 = t3[j]; if (!(t3 < 65537)) return A.ioore(hcode, t3); t2 -= l; if (hcode[t3] >>> 6 === (B.JSInt_methods.$shr(c_lc[0], t2) & B.JSInt_methods._shlPositive$1(1, l) - 1) >>> 0) { B.JSArray_methods.$indexSet(c_lc, 1, t2); t2 = pl.p; if (!(j < t2.length)) return A.ioore(t2, j); oi0 = A.ExrHuffman_getCode(t2[j], rlc, c_lc, input, out, oi, no); oi = oi0; break; } } } if (j === pl.lit) throw A.wrapException(A.ImageException$(_s45_)); } } } i = 8 - ni & 7; B.JSArray_methods.$indexSet(c_lc, 0, B.JSInt_methods._shrOtherPositive$1(c_lc[0], i)); B.JSArray_methods.$indexSet(c_lc, 1, c_lc[1] - i); for (; t2 = c_lc[1], t2 > 0;) { t3 = B.JSInt_methods.$shl(c_lc[0], 14 - t2) & 16383; if (!(t3 < t1)) return A.ioore(hdecod, t3); pl = hdecod[t3]; t3 = pl.len; if (t3 !== 0) { B.JSArray_methods.$indexSet(c_lc, 1, t2 - t3); oi = A.ExrHuffman_getCode(pl.lit, rlc, c_lc, input, out, oi, no); } else throw A.wrapException(A.ImageException$(_s45_)); } if (oi !== no) throw A.wrapException(A.ImageException$("Error in Huffman-encoded data (decoded data are shorter than expected).")); }, ExrHuffman_getCode(po, rlc, c_lc, input, out, oi, oe) { var cs, t1, t2, s, cs0, oi0, _s70_ = "Error in Huffman-encoded data (decoded data are longer than expected)."; if (po === rlc) { if (c_lc[1] < 8) A.ExrHuffman_getChar(c_lc, input); B.JSArray_methods.$indexSet(c_lc, 1, c_lc[1] - 8); cs = B.JSInt_methods.$shr(c_lc[0], c_lc[1]) & 255; if (oi + cs > oe) throw A.wrapException(A.ImageException$(_s70_)); t1 = oi - 1; t2 = out.length; if (!(t1 >= 0 && t1 < t2)) return A.ioore(out, t1); s = out[t1]; for (; cs0 = cs - 1, cs > 0; cs = cs0, oi = oi0) { oi0 = oi + 1; if (!(oi < t2)) return A.ioore(out, oi); out[oi] = s; } } else { if (oi < oe) { oi0 = oi + 1; if (!(oi < out.length)) return A.ioore(out, oi); out[oi] = po; } else throw A.wrapException(A.ImageException$(_s70_)); oi = oi0; } return oi; }, ExrHuffman_buildDecTable(hcode, im, iM, hdecod) { var t1, t2, t3, t4, c, l, pl, t5, i, pi, _s57_ = "Error in Huffman-encoded data (invalid code table entry)."; for (t1 = hdecod.length, t2 = type$.JSArray_int, t3 = type$.int; im <= iM; ++im) { if (!(im < 65537)) return A.ioore(hcode, im); t4 = hcode[im]; c = t4 >>> 6; l = t4 & 63; if (B.JSInt_methods._shrBothPositive$1(c, l) !== 0) throw A.wrapException(A.ImageException$(_s57_)); if (l > 14) { t4 = B.JSInt_methods._shrReceiverPositive$1(c, l - 14); if (!(t4 < t1)) return A.ioore(hdecod, t4); pl = hdecod[t4]; if (pl.len !== 0) throw A.wrapException(A.ImageException$(_s57_)); t4 = ++pl.lit; t5 = pl.p; if (t5 != null) { pl.set$p(A.List_List$filled(t4, 0, false, t3)); for (i = 0; i < pl.lit - 1; ++i) { t4 = pl.p; t4.toString; if (!(i < t5.length)) return A.ioore(t5, i); B.JSArray_methods.$indexSet(t4, i, t5[i]); } } else pl.set$p(A._setArrayType([0], t2)); t4 = pl.p; t4.toString; B.JSArray_methods.$indexSet(t4, pl.lit - 1, im); } else if (l !== 0) { t4 = 14 - l; pi = B.JSInt_methods.$shl(c, t4); if (!(pi < t1)) return A.ioore(hdecod, pi); for (i = B.JSInt_methods.$shl(1, t4); i > 0; --i, ++pi) { if (!(pi < t1)) return A.ioore(hdecod, pi); pl = hdecod[pi]; if (pl.len !== 0 || pl.p != null) throw A.wrapException(A.ImageException$(_s57_)); pl.len = l; pl.lit = im; } } } }, ExrHuffman_unpackEncTable(p, ni, im, iM, hcode) { var t1, l, zerun, zerun0, im0, _s66_ = "Error in Huffman-encoded data (unexpected end of code table data).", _s67_ = "Error in Huffman-encoded data (code table is longer than expected).", pcode = p.offset, c_lc = A._setArrayType([0, 0], type$.JSArray_int); for (t1 = iM + 1; im <= iM; ++im) { if (p.offset - pcode > ni) throw A.wrapException(A.ImageException$(_s66_)); l = A.ExrHuffman_getBits(6, c_lc, p); B.JSArray_methods.$indexSet(hcode, im, l); if (l === 63) { if (p.offset - pcode > ni) throw A.wrapException(A.ImageException$(_s66_)); zerun = A.ExrHuffman_getBits(8, c_lc, p) + 6; if (im + zerun > t1) throw A.wrapException(A.ImageException$(_s67_)); for (; zerun0 = zerun - 1, zerun !== 0; zerun = zerun0, im = im0) { im0 = im + 1; B.JSArray_methods.$indexSet(hcode, im, 0); } --im; } else if (l >= 59) { zerun = l - 59 + 2; if (im + zerun > t1) throw A.wrapException(A.ImageException$(_s67_)); for (; zerun0 = zerun - 1, zerun !== 0; zerun = zerun0, im = im0) { im0 = im + 1; B.JSArray_methods.$indexSet(hcode, im, 0); } --im; } } A.ExrHuffman_canonicalCodeTable(hcode); }, ExrHuffman_canonicalCodeTable(hcode) { var i, t1, c, nc, l, n = A.List_List$filled(59, 0, false, type$.int); for (i = 0; i < 65537; ++i) { t1 = hcode[i]; if (!(t1 < 59)) return A.ioore(n, t1); B.JSArray_methods.$indexSet(n, t1, n[t1] + 1); } for (c = 0, i = 58; i > 0; --i, c = nc) { nc = c + n[i] >>> 1; B.JSArray_methods.$indexSet(n, i, c); } for (i = 0; i < 65537; ++i) { l = hcode[i]; if (l > 0) { if (!(l < 59)) return A.ioore(n, l); t1 = n[l]; B.JSArray_methods.$indexSet(n, l, t1 + 1); B.JSArray_methods.$indexSet(hcode, i, (l | t1 << 6) >>> 0); } } }, ExrHuffman_getChar(c_lc, input) { B.JSArray_methods.$indexSet(c_lc, 0, ((c_lc[0] << 8 | input.readByte$0()) & -1) >>> 0); B.JSArray_methods.$indexSet(c_lc, 1, (c_lc[1] + 8 & -1) >>> 0); }, ExrHuffman_getBits(nBits, c_lc, input) { var t1, t2, t3; for (; t1 = c_lc[1], t1 < nBits;) { t1 = c_lc[0]; t2 = input.buffer; t3 = input.offset++; if (!(t3 >= 0 && t3 < t2.length)) return A.ioore(t2, t3); B.JSArray_methods.$indexSet(c_lc, 0, ((t1 << 8 | t2[t3]) & -1) >>> 0); B.JSArray_methods.$indexSet(c_lc, 1, (c_lc[1] + 8 & -1) >>> 0); } B.JSArray_methods.$indexSet(c_lc, 1, t1 - nBits); return (B.JSInt_methods.$shr(c_lc[0], c_lc[1]) & B.JSInt_methods._shlPositive$1(1, nBits) - 1) >>> 0; }, ExrHufDec: function ExrHufDec() { this.lit = this.len = 0; this.p = null; }, ExrImage_isValidFile(bytes) { var input = A.InputBuffer$(bytes, false, null, 0); if (input.readUint32$0() !== 20000630) return false; if (input.readByte$0() !== 2) return false; if ((input.readUint24$0() & 4294967289) >>> 0 !== 0) return false; return true; }, ExrImage: function ExrImage(t0) { var _ = this; _._parts = t0; _.version = null; _.__ExrImage_flags = $; _.height = _.width = 0; }, InternalExrPart$(tiled, input) { var t1 = new A.InternalExrPart(new A.HdrImage(A.LinkedHashMap_LinkedHashMap$_empty(type$.nullable_String, type$.HdrSlice)), A._setArrayType([], type$.JSArray_ExrChannel), A.LinkedHashMap_LinkedHashMap$_empty(type$.String, type$.ExrAttribute), tiled); t1.ExrPart$2(tiled, input, {}); return t1; }, ExrPart: function ExrPart() { }, ExrPart_closure: function ExrPart_closure(t0, t1) { this._box_0 = t0; this.$this = t1; }, InternalExrPart: function InternalExrPart(t0, t1, t2, t3) { var _ = this; _.framebuffer = t0; _.channels = t1; _.attributes = t2; _.__ExrPart_dataWindow = $; _.height = _.width = null; _.__ExrPart_chromaticities = $; _._compressionType = 0; _._offsets = null; _.__ExrPart__bytesPerLine = $; _._offsetInLineBuffer = _._linesInBuffer = _._compressor = null; _._tiled = t3; _._numYLevels = _._numXLevels = _._numYTiles = _._numXTiles = _._tileRoundingMode = _._tileLevelMode = _._tileHeight = _._tileWidth = null; _.__ExrPart__bytesPerPixel = $; _._maxBytesPerTileLine = null; }, InternalExrPizCompressor: function InternalExrPizCompressor(t0, t1, t2) { var _ = this; _._exr_piz_compressor$_output = null; _._exr_piz_compressor$_maxScanLineSize = t0; _._exr_piz_compressor$_numScanLines = t1; _.__InternalExrPizCompressor__channelData = $; _._tmpBuffer = null; _.decodedHeight = _.decodedWidth = 0; _._header = t2; }, _PizChannelData: function _PizChannelData() { var _ = this; _.___PizChannelData_size = _.___PizChannelData_ys = _.___PizChannelData_ny = _.___PizChannelData_nx = _.___PizChannelData_end = _.___PizChannelData_start = $; }, InternalExrPxr24Compressor: function InternalExrPxr24Compressor(t0, t1, t2) { var _ = this; _._maxScanLineSize = t0; _._exr_pxr24_compressor$_numScanLines = t1; _._output = null; _.decodedHeight = _.decodedWidth = 0; _._header = t2; }, InternalExrRleCompressor: function InternalExrRleCompressor(t0) { var _ = this; _._exr_rle_compressor$_outCache = null; _.decodedHeight = _.decodedWidth = 0; _._header = t0; }, InternalExrZipCompressor: function InternalExrZipCompressor(t0, t1) { var _ = this; _._exr_zip_compressor$_numScanLines = t0; _._outCache = null; _.decodedHeight = _.decodedWidth = 0; _._header = t1; }, ExrDecoder: function ExrDecoder() { this.exrImage = null; }, GifColorMap$(numColors) { var t1 = new Uint8Array(numColors * 3); A.GifColorMap__bitSize(numColors); return new A.GifColorMap(numColors, t1); }, GifColorMap__bitSize(n) { var i; for (i = 1; i <= 8; ++i) if (B.JSInt_methods._shlPositive$1(1, i) >= n) return i; return 0; }, GifColorMap: function GifColorMap(t0, t1) { this.numColors = t0; this.transparent = null; this.colors = t1; }, GifImageDesc: function GifImageDesc() { }, InternalGifImageDesc: function InternalGifImageDesc() { var _ = this; _.__GifImageDesc_interlaced = _.__GifImageDesc_height = _.__GifImageDesc_width = _.__GifImageDesc_y = _.__GifImageDesc_x = $; _.colorMap = null; _.__GifImageDesc__inputPosition = $; }, GifInfo: function GifInfo(t0) { var _ = this; _.globalColorMap = null; _.frames = t0; _.height = _.width = 0; }, GifDecoder: function GifDecoder() { var _ = this; _._gif_decoder$_buffer = _._input = _.info = null; _.__GifDecoder__suffix = _.__GifDecoder__stack = $; _._prefix = null; _._bitsPerPixel = 0; _._pixelCount = null; _._stackPtr = _._currentShiftState = _._currentShiftDWord = 0; _._currentCode = null; _._clearCode = _._eofCode = _._runningCode = _._runningBits = _._maxCode1 = _._lastCode = 0; }, GifEncoder: function GifEncoder(t0) { var _ = this; _.samplingFactor = t0; _._lastColorMap = _._lastImageDuration = _._lastImage = null; _.__GifEncoder__height = _.__GifEncoder__width = $; _._freeEnt = _._gif_encoder$_clearCode = _._maxCode = _._EOFCode = _._initBits = _._nBits = _._curBits = _._curAccum = _._encodedFrames = 0; _._clearFlag = false; _.__GifEncoder__block = $; _._blockSize = 0; _.output = null; }, GifEncoder__encodeLZW__nextPixel: function GifEncoder__encodeLZW__nextPixel(t0, t1) { this._box_0 = t0; this.image = t1; }, IcoInfo__read(input) { var type, imageCount; if (input.readUint16$0() !== 0) return null; type = input.readUint16$0(); if (!B.JSArray_methods.contains$1(A._setArrayType([1, 2], type$.JSArray_int), type)) return null; if (type === 2) return null; imageCount = input.readUint16$0(); return new A.IcoInfo(imageCount, A.Iterable_Iterable$generate(imageCount, new A.IcoInfo__read_closure(input), type$.IcoInfoImage).toList$0(0)); }, IcoDecoder: function IcoDecoder() { this._icoInfo = this._ico_decoder$_input = null; }, IcoInfo: function IcoInfo(t0, t1) { var _ = this; _.numFrames = t0; _.images = t1; _.height = _.width = 0; }, IcoInfo__read_closure: function IcoInfo__read_closure(t0) { this.input = t0; }, IcoInfoImage: function IcoInfoImage(t0, t1) { this.bytesSize = t0; this.bytesOffset = t1; }, IcoBmpInfo: function IcoBmpInfo(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11) { var _ = this; _.file = t0; _._bmp_info$_height = t1; _.BmpInfo_width = t2; _.headerSize = t3; _.planes = t4; _.bpp = t5; _.compression = t6; _.imageSize = t7; _.xppm = t8; _.yppm = t9; _.totalColors = t10; _.importantColors = t11; _.colorPalette = _.v5alphaMask = _.v5blueMask = _.v5greenMask = _.v5redMask = null; _.height = _.width = 0; }, WinEncoder: function WinEncoder() { }, IcoEncoder: function IcoEncoder() { }, ComponentData: function ComponentData(t0, t1, t2) { this.lines = t0; this.hScaleShift = t1; this.vScaleShift = t2; }, JpegAdobe: function JpegAdobe() { this.transformCode = null; }, JpegComponent: function JpegComponent(t0, t1, t2, t3) { var _ = this; _.hSamples = t0; _.vSamples = t1; _.quantizationTableList = t2; _.quantizationIndex = t3; _.__JpegComponent_pred = _.__JpegComponent_huffmanTableAC = _.__JpegComponent_huffmanTableDC = _.__JpegComponent_blocks = _.__JpegComponent_blocksPerColumn = _.__JpegComponent_blocksPerLine = $; }, JpegData$() { var t1 = type$.JSArray_nullable_List_dynamic; return new A.JpegData(new A.ExifData(A.LinkedHashMap_LinkedHashMap$_empty(type$.int, type$.dynamic)), A.List_List$filled(4, null, false, type$.nullable_Int16List), A._setArrayType([], type$.JSArray_nullable_JpegFrame), A._setArrayType([], t1), A._setArrayType([], t1), A._setArrayType([], type$.JSArray_ComponentData)); }, JpegData: function JpegData(t0, t1, t2, t3, t4, t5) { var _ = this; _.__JpegData_jfif = _.__JpegData_input = $; _.resetInterval = _.frame = _.adobe = null; _.exif = t0; _.quantizationTables = t1; _.frames = t2; _.huffmanTablesAC = t3; _.huffmanTablesDC = t4; _.components = t5; }, JpegData__readSOS_closure: function JpegData__readSOS_closure(t0, t1) { this.$this = t0; this.block = t1; }, _JpegHuffman: function _JpegHuffman(t0) { this.children = t0; this.index = 0; }, JpegFrame: function JpegFrame(t0, t1) { var _ = this; _.samplesPerLine = _.scanLines = _.precision = _.progressive = null; _.maxVSamples = _.maxHSamples = 0; _.__JpegFrame_mcusPerColumn = _.__JpegFrame_mcusPerLine = $; _.components = t0; _.componentsOrder = t1; }, JpegJfif: function JpegJfif() { this.__JpegJfif_thumbHeight = this.__JpegJfif_thumbWidth = $; }, JpegScan: function JpegScan(t0, t1, t2, t3, t4, t5, t6, t7) { var _ = this; _.input = t0; _.frame = t1; _.__JpegScan_mcusPerLine = $; _.progressive = null; _.components = t2; _.resetInterval = t3; _.spectralStart = t4; _.spectralEnd = t5; _.successivePrev = t6; _.successive = t7; _.successiveACState = _.eobrun = _.bitsCount = _.bitsData = 0; _.__JpegScan_successiveACNextValue = $; }, JpegDecoder: function JpegDecoder() { }, JpegEncoder: function JpegEncoder(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11) { var _ = this; _.YTable = t0; _.UVTable = t1; _.fdtbl_Y = t2; _.fdtbl_UV = t3; _.UVDC_HT = _.YDC_HT = null; _.__JpegEncoder_UVAC_HT = _.__JpegEncoder_YAC_HT = $; _.bitcode = t4; _.category = t5; _.outputfDCTQuant = t6; _.DU = t7; _.YDU = t8; _.UDU = t9; _.VDU = t10; _.RGB_YUV_TABLE = t11; _.currentQuality = null; _._bytenew = 0; _._bytepos = 7; }, PngFrame: function PngFrame() { }, InternalPngFrame: function InternalPngFrame(t0) { this.height = this.width = null; this._fdat = t0; }, PngInfo: function PngInfo() { }, InternalPngInfo: function InternalPngInfo(t0, t1, t2) { var _ = this; _.gamma = _.colorLut = _.transparency = _.palette = _.interlaceMethod = _.filterMethod = _.colorType = _.bits = null; _.iCCPName = ""; _.iCCPData = null; _.textData = t0; _.frames = t1; _._idat = t2; _.height = _.width = 0; }, PngDecoder: function PngDecoder() { var _ = this; _._png_decoder$_info = null; _._png_decoder$_bitBufferLen = _._png_decoder$_bitBuffer = 0; _.__PngDecoder__input = $; _._progressY = 0; }, PngDecoder_decodeFrame_closure: function PngDecoder_decodeFrame_closure() { }, PngEncoder$(level) { return new A.PngEncoder(level); }, PngEncoder: function PngEncoder(t0) { var _ = this; _.channels = null; _.level = t0; _.__PngEncoder_yOffset = _.__PngEncoder_xOffset = $; _.delay = null; _.__PngEncoder__height = _.__PngEncoder__width = _.__PngEncoder_blendMethod = _.__PngEncoder_disposeMethod = $; _.sequenceNumber = 0; _.isAnimated = false; _.output = null; }, PsdBevelEffect: function PsdBevelEffect() { this.version = null; }, PsdDropShadowEffect: function PsdDropShadowEffect() { this.version = null; }, PsdEffect: function PsdEffect() { }, PsdInnerGlowEffect: function PsdInnerGlowEffect() { this.version = null; }, PsdInnerShadowEffect: function PsdInnerShadowEffect() { this.version = null; }, PsdOuterGlowEffect: function PsdOuterGlowEffect() { this.version = null; }, PsdSolidFillEffect: function PsdSolidFillEffect() { this.version = null; }, PsdLayerAdditionalData: function PsdLayerAdditionalData(t0) { this.data = t0; }, PsdLayerSectionDivider: function PsdLayerSectionDivider() { }, PsdBlendingRanges: function PsdBlendingRanges() { var _ = this; _.__PsdBlendingRanges_whiteDst = _.__PsdBlendingRanges_blackDst = _.__PsdBlendingRanges_whiteSrc = _.__PsdBlendingRanges_blackSrc = $; }, PsdChannel: function PsdChannel(t0) { this.id = t0; this.__PsdChannel_data = $; }, PsdImage$(bytes) { var t1 = new A.PsdImage(A.LinkedHashMap_LinkedHashMap$_empty(type$.int, type$.PsdImageResource)); t1.PsdImage$1(bytes); return t1; }, PsdImage__blendOverlay(a, b, aAlpha, bAlpha) { var x = a / 255, y = b / 255, aa = aAlpha / 255, ba = bAlpha / 255, t1 = y * (1 - aa), t2 = x * (1 - ba); return B.JSNumber_methods.toInt$0(B.JSNumber_methods.clamp$2((2 * x < aa ? 2 * y * x + t1 + t2 : ba * aa - 2 * (aa - x) * (ba - y) + t1 + t2) * 255, 0, 255)); }, PsdImage__blendColorBurn(a, b) { if (b === 0) return 0; return B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(B.JSNumber_methods.toInt$0(255 * (1 - (1 - a / 255) / (b / 255))), 0, 255)); }, PsdImage__blendLinearBurn(a, b) { return B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(a + b - 255, 0, 255)); }, PsdImage__blendColorDodge(a, b) { if (b === 255) return 255; return B.JSNumber_methods.toInt$0(B.JSNumber_methods.clamp$2(a / 255 / (1 - b / 255) * 255, 0, 255)); }, PsdImage__blendSoftLight(a, b) { var aa = a / 255, bb = b / 255, t1 = 1 - bb; return B.JSNumber_methods.round$0(255 * (t1 * bb * aa + bb * (1 - t1 * (1 - aa)))); }, PsdImage__blendHardLight(bottom, $top) { var a = $top / 255, b = bottom / 255; if (b < 0.5) return B.JSNumber_methods.round$0(510 * a * b); else return B.JSNumber_methods.round$0(255 * (1 - 2 * (1 - a) * (1 - b))); }, PsdImage__blendVividLight(bottom, $top) { if ($top < 128) return A.PsdImage__blendColorBurn(bottom, 2 * $top); else return A.PsdImage__blendColorDodge(bottom, 2 * ($top - 128)); }, PsdImage__blendLinearLight(bottom, $top) { var t1; if ($top < 128) return A.PsdImage__blendLinearBurn(bottom, 2 * $top); else { t1 = 2 * ($top - 128); return t1 + bottom > 255 ? 255 : bottom + t1; } }, PsdImage_createImageFromChannels(colorMode, bitDepth, width, height, channelList) { var t1, _i, t2, ch, ns, channel0, channel1, channel2, channel_1, t3, t4, t5, t6, y, di, si, x, di0, t7, t8, t9, t10, di1, di2, r, g, b, a, t11, t12, alpha, t13, y0, x0, z, y3, x3, z3, $R, $G, $B, rgb, gray, c, m, k, _s4_ = "data", output = A.Image$(width, height, B.Channels_1, null, null), pixels = output.getBytes$0(), channels = A.LinkedHashMap_LinkedHashMap$_empty(type$.int, type$.PsdChannel); for (t1 = channelList.length, _i = 0; t2 = channelList.length, _i < t2; channelList.length === t1 || (0, A.throwConcurrentModificationError)(channelList), ++_i) { ch = channelList[_i]; channels.$indexSet(0, ch.id, ch); } if (bitDepth === 8) ns = 1; else ns = bitDepth === 16 ? 2 : -1; if (ns === -1) throw A.wrapException(A.ImageException$("PSD: unsupported bit depth: " + A.S(bitDepth))); channel0 = channels.$index(0, 0); channel1 = channels.$index(0, 1); channel2 = channels.$index(0, 2); channel_1 = channels.$index(0, -1); for (t1 = pixels.length, t3 = t2 >= 5, t4 = ns === 1, t5 = t2 === 4, t6 = t2 >= 2, t2 = t2 >= 4, y = 0, di = 0, si = 0; y < height; ++y) for (x = 0; x < width; ++x, si += ns) switch (colorMode) { case 3: di0 = di + 1; t7 = A._lateReadCheck(channel0.__PsdChannel_data, _s4_); t8 = t7.length; if (t4) { if (!(si >= 0 && si < t8)) return A.ioore(t7, si); t7 = t7[si]; } else { if (!(si >= 0 && si < t8)) return A.ioore(t7, si); t9 = t7[si]; t10 = si + 1; if (!(t10 < t8)) return A.ioore(t7, t10); t10 = (t9 << 8 | t7[t10]) >>> 8; t7 = t10; } if (!(di >= 0 && di < t1)) return A.ioore(pixels, di); pixels[di] = t7; di1 = di0 + 1; t7 = A._lateReadCheck(channel1.__PsdChannel_data, _s4_); t8 = t7.length; if (t4) { if (!(si >= 0 && si < t8)) return A.ioore(t7, si); t7 = t7[si]; } else { if (!(si >= 0 && si < t8)) return A.ioore(t7, si); t9 = t7[si]; t10 = si + 1; if (!(t10 < t8)) return A.ioore(t7, t10); t10 = (t9 << 8 | t7[t10]) >>> 8; t7 = t10; } if (!(di0 >= 0 && di0 < t1)) return A.ioore(pixels, di0); pixels[di0] = t7; di2 = di1 + 1; t7 = A._lateReadCheck(channel2.__PsdChannel_data, _s4_); t8 = t7.length; if (t4) { if (!(si >= 0 && si < t8)) return A.ioore(t7, si); t7 = t7[si]; } else { if (!(si >= 0 && si < t8)) return A.ioore(t7, si); t9 = t7[si]; t10 = si + 1; if (!(t10 < t8)) return A.ioore(t7, t10); t10 = (t9 << 8 | t7[t10]) >>> 8; t7 = t10; } if (!(di1 >= 0 && di1 < t1)) return A.ioore(pixels, di1); pixels[di1] = t7; di1 = di2 + 1; if (t2) { t7 = A._lateReadCheck(channel_1.__PsdChannel_data, _s4_); t8 = t7.length; if (t4) { if (!(si >= 0 && si < t8)) return A.ioore(t7, si); t7 = t7[si]; } else { if (!(si >= 0 && si < t8)) return A.ioore(t7, si); t9 = t7[si]; t10 = si + 1; if (!(t10 < t8)) return A.ioore(t7, t10); t10 = (t9 << 8 | t7[t10]) >>> 8; t7 = t10; } } else t7 = 255; if (!(di2 >= 0 && di2 < t1)) return A.ioore(pixels, di2); pixels[di2] = t7; r = pixels[di]; g = pixels[di0]; t7 = di + 2; if (!(t7 < t1)) return A.ioore(pixels, t7); b = pixels[t7]; t8 = di + 3; if (!(t8 < t1)) return A.ioore(pixels, t8); a = pixels[t8]; if (a !== 0) { pixels[di] = B.JSInt_methods.$tdiv((r + a - 255) * 255, a); pixels[di0] = B.JSInt_methods.$tdiv((g + a - 255) * 255, a); pixels[t7] = B.JSInt_methods.$tdiv((b + a - 255) * 255, a); } di = di1; break; case 9: t7 = A._lateReadCheck(channel0.__PsdChannel_data, _s4_); t8 = t7.length; if (t4) { if (!(si >= 0 && si < t8)) return A.ioore(t7, si); t7 = t7[si]; } else { if (!(si >= 0 && si < t8)) return A.ioore(t7, si); t9 = t7[si]; t10 = si + 1; if (!(t10 < t8)) return A.ioore(t7, t10); t10 = (t9 << 8 | t7[t10]) >>> 8; t7 = t10; } t8 = A._lateReadCheck(channel1.__PsdChannel_data, _s4_); t9 = t8.length; if (t4) { if (!(si >= 0 && si < t9)) return A.ioore(t8, si); t8 = t8[si]; } else { if (!(si >= 0 && si < t9)) return A.ioore(t8, si); t10 = t8[si]; t11 = si + 1; if (!(t11 < t9)) return A.ioore(t8, t11); t11 = (t10 << 8 | t8[t11]) >>> 8; t8 = t11; } t9 = A._lateReadCheck(channel2.__PsdChannel_data, _s4_); t10 = t9.length; if (t4) { if (!(si >= 0 && si < t10)) return A.ioore(t9, si); t9 = t9[si]; } else { if (!(si >= 0 && si < t10)) return A.ioore(t9, si); t11 = t9[si]; t12 = si + 1; if (!(t12 < t10)) return A.ioore(t9, t12); t12 = (t11 << 8 | t9[t12]) >>> 8; t9 = t12; } if (t2) { t10 = A._lateReadCheck(channel_1.__PsdChannel_data, _s4_); t11 = t10.length; if (t4) { if (!(si >= 0 && si < t11)) return A.ioore(t10, si); t10 = t10[si]; alpha = t10; } else { if (!(si >= 0 && si < t11)) return A.ioore(t10, si); t12 = t10[si]; t13 = si + 1; if (!(t13 < t11)) return A.ioore(t10, t13); t13 = (t12 << 8 | t10[t13]) >>> 8; alpha = t13; } } else alpha = 255; y0 = ((t7 * 100 >>> 8) + 16) / 116; x0 = (t8 - 128) / 500 + y0; z = y0 - (t9 - 128) / 200; y3 = Math.pow(y0, 3); y0 = y3 > 0.008856 ? y3 : (y0 - 0.13793103448275862) / 7.787; x3 = Math.pow(x0, 3); x0 = x3 > 0.008856 ? x3 : (x0 - 0.13793103448275862) / 7.787; z3 = Math.pow(z, 3); z = z3 > 0.008856 ? z3 : (z - 0.13793103448275862) / 7.787; x0 = x0 * 95.047 / 100; y0 = y0 * 100 / 100; z = z * 108.883 / 100; $R = x0 * 3.2406 + y0 * -1.5372 + z * -0.4986; $G = x0 * -0.9689 + y0 * 1.8758 + z * 0.0415; $B = x0 * 0.0557 + y0 * -0.204 + z * 1.057; $R = $R > 0.0031308 ? 1.055 * Math.pow($R, 0.4166666666666667) - 0.055 : 12.92 * $R; $G = $G > 0.0031308 ? 1.055 * Math.pow($G, 0.4166666666666667) - 0.055 : 12.92 * $G; $B = $B > 0.0031308 ? 1.055 * Math.pow($B, 0.4166666666666667) - 0.055 : 12.92 * $B; rgb = [B.JSNumber_methods.toInt$0(B.JSNumber_methods.clamp$2($R * 255, 0, 255)), B.JSNumber_methods.toInt$0(B.JSNumber_methods.clamp$2($G * 255, 0, 255)), B.JSNumber_methods.toInt$0(B.JSNumber_methods.clamp$2($B * 255, 0, 255))]; di0 = di + 1; t7 = rgb[0]; if (!(di >= 0 && di < t1)) return A.ioore(pixels, di); pixels[di] = t7; di = di0 + 1; t7 = rgb[1]; if (!(di0 >= 0 && di0 < t1)) return A.ioore(pixels, di0); pixels[di0] = t7; di0 = di + 1; t7 = rgb[2]; if (!(di >= 0 && di < t1)) return A.ioore(pixels, di); pixels[di] = t7; di = di0 + 1; if (!(di0 >= 0 && di0 < t1)) return A.ioore(pixels, di0); pixels[di0] = alpha; break; case 1: t7 = A._lateReadCheck(channel0.__PsdChannel_data, _s4_); t8 = t7.length; if (t4) { if (!(si >= 0 && si < t8)) return A.ioore(t7, si); gray = t7[si]; } else { if (!(si >= 0 && si < t8)) return A.ioore(t7, si); t9 = t7[si]; t10 = si + 1; if (!(t10 < t8)) return A.ioore(t7, t10); gray = (t9 << 8 | t7[t10]) >>> 8; } if (t6) { t7 = A._lateReadCheck(channel_1.__PsdChannel_data, _s4_); t8 = t7.length; if (t4) { if (!(si >= 0 && si < t8)) return A.ioore(t7, si); t7 = t7[si]; alpha = t7; } else { if (!(si >= 0 && si < t8)) return A.ioore(t7, si); t9 = t7[si]; t10 = si + 1; if (!(t10 < t8)) return A.ioore(t7, t10); t10 = (t9 << 8 | t7[t10]) >>> 8; alpha = t10; } } else alpha = 255; di0 = di + 1; if (!(di >= 0 && di < t1)) return A.ioore(pixels, di); pixels[di] = gray; di = di0 + 1; if (!(di0 >= 0 && di0 < t1)) return A.ioore(pixels, di0); pixels[di0] = gray; di0 = di + 1; if (!(di >= 0 && di < t1)) return A.ioore(pixels, di); pixels[di] = gray; di = di0 + 1; if (!(di0 >= 0 && di0 < t1)) return A.ioore(pixels, di0); pixels[di0] = alpha; break; case 4: t7 = A._lateReadCheck(channel0.__PsdChannel_data, _s4_); t8 = t7.length; if (t4) { if (!(si >= 0 && si < t8)) return A.ioore(t7, si); c = t7[si]; } else { if (!(si >= 0 && si < t8)) return A.ioore(t7, si); t9 = t7[si]; t10 = si + 1; if (!(t10 < t8)) return A.ioore(t7, t10); c = (t9 << 8 | t7[t10]) >>> 8; } t7 = A._lateReadCheck(channel1.__PsdChannel_data, _s4_); t8 = t7.length; if (t4) { if (!(si >= 0 && si < t8)) return A.ioore(t7, si); m = t7[si]; } else { if (!(si >= 0 && si < t8)) return A.ioore(t7, si); t9 = t7[si]; t10 = si + 1; if (!(t10 < t8)) return A.ioore(t7, t10); m = (t9 << 8 | t7[t10]) >>> 8; } t7 = A._lateReadCheck(channel2.__PsdChannel_data, _s4_); t8 = t7.length; if (t4) { if (!(si >= 0 && si < t8)) return A.ioore(t7, si); y0 = t7[si]; } else { if (!(si >= 0 && si < t8)) return A.ioore(t7, si); t9 = t7[si]; t10 = si + 1; if (!(t10 < t8)) return A.ioore(t7, t10); y0 = (t9 << 8 | t7[t10]) >>> 8; } t7 = A._lateReadCheck(channels.$index(0, t5 ? -1 : 3).__PsdChannel_data, _s4_); t8 = t7.length; if (t4) { if (!(si >= 0 && si < t8)) return A.ioore(t7, si); k = t7[si]; } else { if (!(si >= 0 && si < t8)) return A.ioore(t7, si); t9 = t7[si]; t10 = si + 1; if (!(t10 < t8)) return A.ioore(t7, t10); k = (t9 << 8 | t7[t10]) >>> 8; } if (t3) { t7 = A._lateReadCheck(channel_1.__PsdChannel_data, _s4_); t8 = t7.length; if (t4) { if (!(si >= 0 && si < t8)) return A.ioore(t7, si); t7 = t7[si]; alpha = t7; } else { if (!(si >= 0 && si < t8)) return A.ioore(t7, si); t9 = t7[si]; t10 = si + 1; if (!(t10 < t8)) return A.ioore(t7, t10); t10 = (t9 << 8 | t7[t10]) >>> 8; alpha = t10; } } else alpha = 255; t7 = 1 - (255 - k) / 255; rgb = [B.JSNumber_methods.round$0(255 * (1 - (255 - c) / 255) * t7), B.JSNumber_methods.round$0(255 * (1 - (255 - m) / 255) * t7), B.JSNumber_methods.round$0(255 * (1 - (255 - y0) / 255) * t7)]; di0 = di + 1; t7 = rgb[0]; if (!(di >= 0 && di < t1)) return A.ioore(pixels, di); pixels[di] = t7; di = di0 + 1; t7 = rgb[1]; if (!(di0 >= 0 && di0 < t1)) return A.ioore(pixels, di0); pixels[di0] = t7; di0 = di + 1; t7 = rgb[2]; if (!(di >= 0 && di < t1)) return A.ioore(pixels, di); pixels[di] = t7; di = di0 + 1; if (!(di0 >= 0 && di0 < t1)) return A.ioore(pixels, di0); pixels[di0] = alpha; break; default: throw A.wrapException(A.ImageException$("Unhandled color mode: " + A.S(colorMode))); } return output; }, PsdImage: function PsdImage(t0) { var _ = this; _.version = _.signature = null; _.__PsdImage_channels = $; _.colorMode = _.depth = null; _.__PsdImage_mergeImageChannels = _.__PsdImage_layers = $; _.mergedImage = null; _.imageResources = t0; _.__PsdImage__imageData = _.__PsdImage__layerAndMaskData = _.__PsdImage__imageResourceData = _.__PsdImage__input = $; _.height = _.width = 0; }, PsdImageResource: function PsdImageResource() { }, PsdLayer: function PsdLayer(t0, t1, t2) { var _ = this; _.left = _.top = null; _.__PsdLayer_height = _.__PsdLayer_width = _.__PsdLayer_right = _.__PsdLayer_bottom = $; _.blendMode = null; _.__PsdLayer_channels = _.__PsdLayer_flags = _.__PsdLayer_opacity = $; _.additionalData = t0; _.children = t1; _.__PsdLayer_layerImage = $; _.effects = t2; }, PsdLayerData_PsdLayerData(tag, data) { var len; switch (tag) { case "lsct": len = data.end - data.offset; data.readUint32$0(); if (len >= 12) { if (data.readString$1(4) !== "8BIM") A.throwExpression(A.ImageException$("Invalid key in layer additional data")); data.readString$1(4); } if (len >= 16) data.readUint32$0(); return new A.PsdLayerSectionDivider(); default: return new A.PsdLayerAdditionalData(data); } }, PsdLayerData: function PsdLayerData() { }, PsdDecoder: function PsdDecoder() { this.info = null; }, TgaInfo: function TgaInfo() { var _ = this; _.bpp = _.imageOffset = null; _.height = _.width = 0; }, TgaDecoder: function TgaDecoder() { this.info = null; this.__TgaDecoder_input = $; }, TgaEncoder: function TgaEncoder() { }, TiffBitReader: function TiffBitReader(t0) { this.input = t0; this._bitPos = this._tiff_bit_reader$_bitBuffer = 0; }, TiffEntry: function TiffEntry(t0, t1, t2, t3) { var _ = this; _.tag = t0; _.type = t1; _.numValues = t2; _.valueOffset = null; _.p = t3; }, TiffFaxDecoder$(fillOrder, width, height) { var t1 = new A.TiffFaxDecoder(width, fillOrder), t2 = type$.nullable_int; t1.set$prevChangingElems(A.List_List$filled(width, null, false, t2)); t1.set$currChangingElems(A.List_List$filled(width, null, false, t2)); return t1; }, TiffFaxDecoder: function TiffFaxDecoder(t0, t1) { var _ = this; _.width = t0; _.fillOrder = t1; _.changingElemSize = 0; _.currChangingElems = _.prevChangingElems = null; _.__TiffFaxDecoder_data = $; _.bytePointer = _.bitPointer = null; _.lastChangingElement = 0; _.compression = 2; _.fillBits = 0; _.oneD = null; }, TiffImage: function TiffImage(t0) { var _ = this; _.tags = t0; _.height = _.width = 0; _.photometricType = null; _.sampleFormat = _.samplesPerPixel = _.bitsPerSample = _.compression = 1; _.imageType = -1; _.isWhiteZero = false; _.predictor = 1; _.__TiffImage_chromaSubV = _.__TiffImage_chromaSubH = $; _.tileHeight = _.tileWidth = 0; _.tileByteCounts = _.tileOffsets = null; _.__TiffImage_tilesY = _.__TiffImage_tilesX = $; _.fillOrder = 1; _.t6Options = _.t4Options = 0; _.colorMap = null; _.__TiffImage_colorMapBlue = _.__TiffImage_colorMapGreen = _.__TiffImage_colorMapRed = $; _.hdrImage = _.image = null; }, TiffInfo: function TiffInfo(t0) { var _ = this; _.signature = null; _.images = t0; _.height = _.width = 0; }, LzwDecoder$() { return new A.LzwDecoder(new Uint8Array(4096)); }, LzwDecoder: function LzwDecoder(t0) { var _ = this; _._bitsToGet = 9; _._nextBits = _._nextData = _._bytePointer = 0; _.__LzwDecoder__outPointer = _.__LzwDecoder__out = _.__LzwDecoder__dataLength = _.__LzwDecoder__data = $; _._tiff_lzw_decoder$_buffer = t0; _.__LzwDecoder__prefix = _.__LzwDecoder__table = $; _._tableIndex = null; _.__LzwDecoder__bufferLength = $; }, TiffDecoder: function TiffDecoder() { this.info = null; this.__TiffDecoder__input = $; }, VP8$(input, _webp) { var t1 = new Int32Array(4), t2 = new Int32Array(4), t3 = new Int8Array(4), t4 = new Int8Array(4), t5 = A.List_List$filled(8, null, false, type$.nullable_VP8BitReader), t6 = A.List_List$filled(4, null, false, type$.nullable_VP8QuantMatrix); return new A.VP8(input, _webp, new A.VP8FrameHeader(), new A.VP8PictureHeader(), new A.VP8FilterHeader(t1, t2), new A.VP8SegmentHeader(t3, t4), t5, t6, new Uint8Array(4)); }, VP8__checkMode(mb_x, mb_y, mode) { if (mode === 0) if (mb_x === 0) return mb_y === 0 ? 6 : 5; else return mb_y === 0 ? 4 : 0; return mode; }, VP8: function VP8(t0, t1, t2, t3, t4, t5, t6, t7, t8) { var _ = this; _.input = t0; _._webp = t1; _.__VP8_br = $; _.output = null; _.__VP8__dsp = $; _._frameHeader = t2; _._picHeader = t3; _._filterHeader = t4; _._segmentHeader = t5; _.__VP8__cropRight = _.__VP8__cropLeft = $; _._mbHeight = _._mbWidth = _._cropBottom = _._cropTop = null; _.__VP8__tlMbY = _.__VP8__tlMbX = $; _._brMbY = _._brMbX = null; _.__VP8__numPartitions = $; _._partitions = t6; _._dqm = t7; _._proba = null; _.__VP8__skipP = _.__VP8__useSkipProba = $; _._intraT = null; _._intraL = t8; _.__VP8__cacheV = _.__VP8__cacheU = _.__VP8__cacheY = _.__VP8__yuvBlock = _.__VP8__fInfo = _.__VP8__mbInfo = _.__VP8__yuvT = _.__VP8__segment = $; _._cacheUVStride = _._cacheYStride = null; _.__VP8__v = _.__VP8__u = _.__VP8__y = _.__VP8__tmpV = _.__VP8__tmpU = _.__VP8__tmpY = $; _._a = null; _._mbY = _._mbX = 0; _.__VP8__mbData = $; _._filterType = null; _.__VP8__alpha = _.__VP8__fStrengths = $; _._alphaData = null; _.__VP8__alphaPlane = $; }, VP8__upsample_LOAD_UV: function VP8__upsample_LOAD_UV() { }, VP8BitReader$(input) { var t1 = new A.VP8BitReader(input); t1.__VP8BitReader__range = 254; t1.__VP8BitReader__value = 0; t1.__VP8BitReader__bits = -8; return t1; }, VP8BitReader: function VP8BitReader(t0) { var _ = this; _.input = t0; _.__VP8BitReader__bits = _.__VP8BitReader__value = _.__VP8BitReader__range = $; _._eof = false; }, VP8Filter_AVG3(a, b, c) { return B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(a + 2 * b + c + 2, 2), 32); }, VP8Filter_VE4(dst) { var t5, t6, t7, t8, vals, i, t1 = dst.buffer, t2 = dst.offset, t3 = t2 + -33, t4 = t1.length; if (!(t3 >= 0 && t3 < t4)) return A.ioore(t1, t3); t3 = t1[t3]; t5 = t2 + -32; if (!(t5 >= 0 && t5 < t4)) return A.ioore(t1, t5); t5 = t1[t5]; t6 = t2 + -31; if (!(t6 >= 0 && t6 < t4)) return A.ioore(t1, t6); t6 = t1[t6]; t3 = A.VP8Filter_AVG3(t3, t5, t6); t7 = t2 + -30; if (!(t7 >= 0 && t7 < t4)) return A.ioore(t1, t7); t7 = t1[t7]; t5 = A.VP8Filter_AVG3(t5, t6, t7); t8 = t2 + -29; if (!(t8 >= 0 && t8 < t4)) return A.ioore(t1, t8); t8 = t1[t8]; t6 = A.VP8Filter_AVG3(t6, t7, t8); t2 += -28; if (!(t2 >= 0 && t2 < t4)) return A.ioore(t1, t2); vals = A._setArrayType([t3, t5, t6, A.VP8Filter_AVG3(t7, t8, t1[t2])], type$.JSArray_int); for (i = 0; i < 4; ++i) dst.memcpy$3(i * 32, 4, vals); }, VP8Filter_HE4(dst) { var t5, t6, t7, d2, t1 = dst.buffer, t2 = dst.offset, t3 = t2 + -33, t4 = t1.length; if (!(t3 >= 0 && t3 < t4)) return A.ioore(t1, t3); t3 = t1[t3]; t5 = t2 + -1; if (!(t5 >= 0 && t5 < t4)) return A.ioore(t1, t5); t5 = t1[t5]; t6 = t2 + 31; if (!(t6 >= 0 && t6 < t4)) return A.ioore(t1, t6); t6 = t1[t6]; t7 = t2 + 63; if (!(t7 >= 0 && t7 < t4)) return A.ioore(t1, t7); t7 = t1[t7]; t2 += 95; if (!(t2 >= 0 && t2 < t4)) return A.ioore(t1, t2); t2 = t1[t2]; d2 = A.InputBuffer$from(dst, null, 0); t1 = d2.toUint32List$0(); t3 = A.VP8Filter_AVG3(t3, t5, t6); if (0 >= t1.length) return A.ioore(t1, 0); t1[0] = 16843009 * t3; d2.offset += 32; t3 = d2.toUint32List$0(); t5 = A.VP8Filter_AVG3(t5, t6, t7); if (0 >= t3.length) return A.ioore(t3, 0); t3[0] = 16843009 * t5; d2.offset += 32; t5 = d2.toUint32List$0(); t6 = A.VP8Filter_AVG3(t6, t7, t2); if (0 >= t5.length) return A.ioore(t5, 0); t5[0] = 16843009 * t6; d2.offset += 32; t6 = d2.toUint32List$0(); t2 = A.VP8Filter_AVG3(t7, t2, t2); if (0 >= t6.length) return A.ioore(t6, 0); t6[0] = 16843009 * t2; }, VP8Filter_DC4(dst) { var t1, t2, t3, dc, i, t4, t5; for (t1 = dst.buffer, t2 = dst.offset, t3 = t1.length, dc = 4, i = 0; i < 4; ++i) { t4 = t2 + (i - 32); if (!(t4 >= 0 && t4 < t3)) return A.ioore(t1, t4); t4 = t1[t4]; t5 = t2 + (-1 + i * 32); if (!(t5 >= 0 && t5 < t3)) return A.ioore(t1, t5); dc += t4 + t1[t5]; } dc = B.JSInt_methods._shrOtherPositive$1(dc, 3); for (i = 0; i < 4; ++i) { t1 = dst.buffer; t2 = dst.offset + i * 32; J.fillRange$3$ax(t1, t2, t2 + 4, dc); } }, VP8Filter_trueMotion(dst, size) { var clip0, di, y, clip, x, t3, t4, t1 = dst.buffer, t2 = dst.offset + -33; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); clip0 = 255 - t1[t2]; for (di = 0, y = 0; y < size; ++y) { t1 = dst.buffer; t2 = dst.offset + (di - 1); if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); clip = clip0 + t1[t2]; for (x = 0; x < size; ++x) { t1 = $.$get$VP8Filter_clip1(); t2 = dst.buffer; t3 = dst.offset; t4 = t3 + (-32 + x); if (!(t4 >= 0 && t4 < t2.length)) return A.ioore(t2, t4); t4 = clip + t2[t4]; t1.toString; if (!(t4 >= 0 && t4 < 766)) return A.ioore(t1, t4); J.$indexSet$ax(t2, t3 + (di + x), t1[t4]); } di += 32; } }, VP8Filter_TM4(dst) { A.VP8Filter_trueMotion(dst, 4); }, VP8Filter_TM8uv(dst) { A.VP8Filter_trueMotion(dst, 8); }, VP8Filter_TM16(dst) { A.VP8Filter_trueMotion(dst, 16); }, VP8Filter_RD4(dst) { var t5, t6, t7, t8, t9, t10, t11, t1 = dst.buffer, t2 = dst.offset, t3 = t2 + -1, t4 = t1.length; if (!(t3 >= 0 && t3 < t4)) return A.ioore(t1, t3); t3 = t1[t3]; t5 = t2 + 31; if (!(t5 >= 0 && t5 < t4)) return A.ioore(t1, t5); t5 = t1[t5]; t6 = t2 + 63; if (!(t6 >= 0 && t6 < t4)) return A.ioore(t1, t6); t6 = t1[t6]; t7 = t2 + 95; if (!(t7 >= 0 && t7 < t4)) return A.ioore(t1, t7); t7 = t1[t7]; t8 = t2 + -33; if (!(t8 >= 0 && t8 < t4)) return A.ioore(t1, t8); t8 = t1[t8]; t9 = t2 + -32; if (!(t9 >= 0 && t9 < t4)) return A.ioore(t1, t9); t9 = t1[t9]; t10 = t2 + -31; if (!(t10 >= 0 && t10 < t4)) return A.ioore(t1, t10); t10 = t1[t10]; t11 = t2 + -30; if (!(t11 >= 0 && t11 < t4)) return A.ioore(t1, t11); t11 = t1[t11]; t2 += -29; if (!(t2 >= 0 && t2 < t4)) return A.ioore(t1, t2); t2 = t1[t2]; dst.$indexSet(0, 96, A.VP8Filter_AVG3(t5, t6, t7)); t6 = A.VP8Filter_AVG3(t3, t5, t6); dst.$indexSet(0, 97, t6); dst.$indexSet(0, 64, t6); t5 = A.VP8Filter_AVG3(t8, t3, t5); dst.$indexSet(0, 98, t5); dst.$indexSet(0, 65, t5); dst.$indexSet(0, 32, t5); t3 = A.VP8Filter_AVG3(t9, t8, t3); dst.$indexSet(0, 99, t3); dst.$indexSet(0, 66, t3); dst.$indexSet(0, 33, t3); dst.$indexSet(0, 0, t3); t8 = A.VP8Filter_AVG3(t10, t9, t8); dst.$indexSet(0, 67, t8); dst.$indexSet(0, 34, t8); dst.$indexSet(0, 1, t8); t9 = A.VP8Filter_AVG3(t11, t10, t9); dst.$indexSet(0, 35, t9); dst.$indexSet(0, 2, t9); dst.$indexSet(0, 3, A.VP8Filter_AVG3(t2, t11, t10)); }, VP8Filter_LD4(dst) { var t5, t6, t7, t8, t9, t10, t1 = dst.buffer, t2 = dst.offset, t3 = t2 + -32, t4 = t1.length; if (!(t3 >= 0 && t3 < t4)) return A.ioore(t1, t3); t3 = t1[t3]; t5 = t2 + -31; if (!(t5 >= 0 && t5 < t4)) return A.ioore(t1, t5); t5 = t1[t5]; t6 = t2 + -30; if (!(t6 >= 0 && t6 < t4)) return A.ioore(t1, t6); t6 = t1[t6]; t7 = t2 + -29; if (!(t7 >= 0 && t7 < t4)) return A.ioore(t1, t7); t7 = t1[t7]; t8 = t2 + -28; if (!(t8 >= 0 && t8 < t4)) return A.ioore(t1, t8); t8 = t1[t8]; t9 = t2 + -27; if (!(t9 >= 0 && t9 < t4)) return A.ioore(t1, t9); t9 = t1[t9]; t10 = t2 + -26; if (!(t10 >= 0 && t10 < t4)) return A.ioore(t1, t10); t10 = t1[t10]; t2 += -25; if (!(t2 >= 0 && t2 < t4)) return A.ioore(t1, t2); t2 = t1[t2]; dst.$indexSet(0, 0, A.VP8Filter_AVG3(t3, t5, t6)); t5 = A.VP8Filter_AVG3(t5, t6, t7); dst.$indexSet(0, 32, t5); dst.$indexSet(0, 1, t5); t6 = A.VP8Filter_AVG3(t6, t7, t8); dst.$indexSet(0, 64, t6); dst.$indexSet(0, 33, t6); dst.$indexSet(0, 2, t6); t7 = A.VP8Filter_AVG3(t7, t8, t9); dst.$indexSet(0, 96, t7); dst.$indexSet(0, 65, t7); dst.$indexSet(0, 34, t7); dst.$indexSet(0, 3, t7); t8 = A.VP8Filter_AVG3(t8, t9, t10); dst.$indexSet(0, 97, t8); dst.$indexSet(0, 66, t8); dst.$indexSet(0, 35, t8); t9 = A.VP8Filter_AVG3(t9, t10, t2); dst.$indexSet(0, 98, t9); dst.$indexSet(0, 67, t9); dst.$indexSet(0, 99, A.VP8Filter_AVG3(t10, t2, t2)); }, VP8Filter_VR4(dst) { var t5, t6, t7, t8, t9, t10, t1 = dst.buffer, t2 = dst.offset, t3 = t2 + -1, t4 = t1.length; if (!(t3 >= 0 && t3 < t4)) return A.ioore(t1, t3); t3 = t1[t3]; t5 = t2 + 31; if (!(t5 >= 0 && t5 < t4)) return A.ioore(t1, t5); t5 = t1[t5]; t6 = t2 + 63; if (!(t6 >= 0 && t6 < t4)) return A.ioore(t1, t6); t6 = t1[t6]; t7 = t2 + -33; if (!(t7 >= 0 && t7 < t4)) return A.ioore(t1, t7); t7 = t1[t7]; t8 = t2 + -32; if (!(t8 >= 0 && t8 < t4)) return A.ioore(t1, t8); t8 = t1[t8]; t9 = t2 + -31; if (!(t9 >= 0 && t9 < t4)) return A.ioore(t1, t9); t9 = t1[t9]; t10 = t2 + -30; if (!(t10 >= 0 && t10 < t4)) return A.ioore(t1, t10); t10 = t1[t10]; t2 += -29; if (!(t2 >= 0 && t2 < t4)) return A.ioore(t1, t2); t2 = t1[t2]; t1 = B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(t7 + t8 + 1, 1), 32); dst.$indexSet(0, 65, t1); dst.$indexSet(0, 0, t1); t1 = B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(t8 + t9 + 1, 1), 32); dst.$indexSet(0, 66, t1); dst.$indexSet(0, 1, t1); t1 = B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(t9 + t10 + 1, 1), 32); dst.$indexSet(0, 67, t1); dst.$indexSet(0, 2, t1); dst.$indexSet(0, 3, B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(t10 + t2 + 1, 1), 32)); dst.$indexSet(0, 96, A.VP8Filter_AVG3(t6, t5, t3)); dst.$indexSet(0, 64, A.VP8Filter_AVG3(t5, t3, t7)); t3 = A.VP8Filter_AVG3(t3, t7, t8); dst.$indexSet(0, 97, t3); dst.$indexSet(0, 32, t3); t7 = A.VP8Filter_AVG3(t7, t8, t9); dst.$indexSet(0, 98, t7); dst.$indexSet(0, 33, t7); t8 = A.VP8Filter_AVG3(t8, t9, t10); dst.$indexSet(0, 99, t8); dst.$indexSet(0, 34, t8); dst.$indexSet(0, 35, A.VP8Filter_AVG3(t9, t10, t2)); }, VP8Filter_VL4(dst) { var t5, t6, t7, t8, t9, t10, t1 = dst.buffer, t2 = dst.offset, t3 = t2 + -32, t4 = t1.length; if (!(t3 >= 0 && t3 < t4)) return A.ioore(t1, t3); t3 = t1[t3]; t5 = t2 + -31; if (!(t5 >= 0 && t5 < t4)) return A.ioore(t1, t5); t5 = t1[t5]; t6 = t2 + -30; if (!(t6 >= 0 && t6 < t4)) return A.ioore(t1, t6); t6 = t1[t6]; t7 = t2 + -29; if (!(t7 >= 0 && t7 < t4)) return A.ioore(t1, t7); t7 = t1[t7]; t8 = t2 + -28; if (!(t8 >= 0 && t8 < t4)) return A.ioore(t1, t8); t8 = t1[t8]; t9 = t2 + -27; if (!(t9 >= 0 && t9 < t4)) return A.ioore(t1, t9); t9 = t1[t9]; t10 = t2 + -26; if (!(t10 >= 0 && t10 < t4)) return A.ioore(t1, t10); t10 = t1[t10]; t2 += -25; if (!(t2 >= 0 && t2 < t4)) return A.ioore(t1, t2); t2 = t1[t2]; dst.$indexSet(0, 0, B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(t3 + t5 + 1, 1), 32)); t1 = B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(t5 + t6 + 1, 1), 32); dst.$indexSet(0, 64, t1); dst.$indexSet(0, 1, t1); t1 = B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(t6 + t7 + 1, 1), 32); dst.$indexSet(0, 65, t1); dst.$indexSet(0, 2, t1); t1 = B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(t7 + t8 + 1, 1), 32); dst.$indexSet(0, 66, t1); dst.$indexSet(0, 3, t1); dst.$indexSet(0, 32, A.VP8Filter_AVG3(t3, t5, t6)); t5 = A.VP8Filter_AVG3(t5, t6, t7); dst.$indexSet(0, 96, t5); dst.$indexSet(0, 33, t5); t6 = A.VP8Filter_AVG3(t6, t7, t8); dst.$indexSet(0, 97, t6); dst.$indexSet(0, 34, t6); t7 = A.VP8Filter_AVG3(t7, t8, t9); dst.$indexSet(0, 98, t7); dst.$indexSet(0, 35, t7); dst.$indexSet(0, 67, A.VP8Filter_AVG3(t8, t9, t10)); dst.$indexSet(0, 99, A.VP8Filter_AVG3(t9, t10, t2)); }, VP8Filter_HU4(dst) { var t5, t6, t1 = dst.buffer, t2 = dst.offset, t3 = t2 + -1, t4 = t1.length; if (!(t3 >= 0 && t3 < t4)) return A.ioore(t1, t3); t3 = t1[t3]; t5 = t2 + 31; if (!(t5 >= 0 && t5 < t4)) return A.ioore(t1, t5); t5 = t1[t5]; t6 = t2 + 63; if (!(t6 >= 0 && t6 < t4)) return A.ioore(t1, t6); t6 = t1[t6]; t2 += 95; if (!(t2 >= 0 && t2 < t4)) return A.ioore(t1, t2); t2 = t1[t2]; dst.$indexSet(0, 0, B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(t3 + t5 + 1, 1), 32)); t1 = B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(t5 + t6 + 1, 1), 32); dst.$indexSet(0, 32, t1); dst.$indexSet(0, 2, t1); t1 = B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(t6 + t2 + 1, 1), 32); dst.$indexSet(0, 64, t1); dst.$indexSet(0, 34, t1); dst.$indexSet(0, 1, A.VP8Filter_AVG3(t3, t5, t6)); t5 = A.VP8Filter_AVG3(t5, t6, t2); dst.$indexSet(0, 33, t5); dst.$indexSet(0, 3, t5); t6 = A.VP8Filter_AVG3(t6, t2, t2); dst.$indexSet(0, 65, t6); dst.$indexSet(0, 35, t6); dst.$indexSet(0, 99, t2); dst.$indexSet(0, 98, t2); dst.$indexSet(0, 97, t2); dst.$indexSet(0, 96, t2); dst.$indexSet(0, 66, t2); dst.$indexSet(0, 67, t2); }, VP8Filter_HD4(dst) { var t5, t6, t7, t8, t9, t10, t1 = dst.buffer, t2 = dst.offset, t3 = t2 + -1, t4 = t1.length; if (!(t3 >= 0 && t3 < t4)) return A.ioore(t1, t3); t3 = t1[t3]; t5 = t2 + 31; if (!(t5 >= 0 && t5 < t4)) return A.ioore(t1, t5); t5 = t1[t5]; t6 = t2 + 63; if (!(t6 >= 0 && t6 < t4)) return A.ioore(t1, t6); t6 = t1[t6]; t7 = t2 + 95; if (!(t7 >= 0 && t7 < t4)) return A.ioore(t1, t7); t7 = t1[t7]; t8 = t2 + -33; if (!(t8 >= 0 && t8 < t4)) return A.ioore(t1, t8); t8 = t1[t8]; t9 = t2 + -32; if (!(t9 >= 0 && t9 < t4)) return A.ioore(t1, t9); t9 = t1[t9]; t10 = t2 + -31; if (!(t10 >= 0 && t10 < t4)) return A.ioore(t1, t10); t10 = t1[t10]; t2 += -30; if (!(t2 >= 0 && t2 < t4)) return A.ioore(t1, t2); t2 = t1[t2]; t1 = B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(t3 + t8 + 1, 1), 32); dst.$indexSet(0, 34, t1); dst.$indexSet(0, 0, t1); t1 = B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(t5 + t3 + 1, 1), 32); dst.$indexSet(0, 66, t1); dst.$indexSet(0, 32, t1); t1 = B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(t6 + t5 + 1, 1), 32); dst.$indexSet(0, 98, t1); dst.$indexSet(0, 64, t1); dst.$indexSet(0, 96, B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(t7 + t6 + 1, 1), 32)); dst.$indexSet(0, 3, A.VP8Filter_AVG3(t9, t10, t2)); dst.$indexSet(0, 2, A.VP8Filter_AVG3(t8, t9, t10)); t9 = A.VP8Filter_AVG3(t3, t8, t9); dst.$indexSet(0, 35, t9); dst.$indexSet(0, 1, t9); t8 = A.VP8Filter_AVG3(t5, t3, t8); dst.$indexSet(0, 67, t8); dst.$indexSet(0, 33, t8); t3 = A.VP8Filter_AVG3(t6, t5, t3); dst.$indexSet(0, 99, t3); dst.$indexSet(0, 65, t3); dst.$indexSet(0, 97, A.VP8Filter_AVG3(t7, t6, t5)); }, VP8Filter_VE16(dst) { var j; for (j = 0; j < 16; ++j) dst.memcpy$4(j * 32, 16, dst, -32); }, VP8Filter_HE16(dst) { var di, j, t1, t2, t3; for (di = 0, j = 16; j > 0; --j) { t1 = dst.buffer; t2 = dst.offset; t3 = t2 + (di - 1); if (!(t3 >= 0 && t3 < t1.length)) return A.ioore(t1, t3); t2 += di; J.fillRange$3$ax(t1, t2, t2 + 16, t1[t3]); di += 32; } }, VP8Filter_Put16(v, dst) { var j, t1, t2; for (j = 0; j < 16; ++j) { t1 = dst.buffer; t2 = dst.offset + j * 32; J.fillRange$3$ax(t1, t2, t2 + 16, v); } }, VP8Filter_DC16(dst) { var t1, t2, t3, DC, j, t4, t5; for (t1 = dst.buffer, t2 = dst.offset, t3 = t1.length, DC = 16, j = 0; j < 16; ++j) { t4 = t2 + (-1 + j * 32); if (!(t4 >= 0 && t4 < t3)) return A.ioore(t1, t4); t4 = t1[t4]; t5 = t2 + (j - 32); if (!(t5 >= 0 && t5 < t3)) return A.ioore(t1, t5); DC += t4 + t1[t5]; } A.VP8Filter_Put16(B.JSInt_methods._shrOtherPositive$1(DC, 5), dst); }, VP8Filter_DC16NoTop(dst) { var t1, t2, t3, DC, j, t4; for (t1 = dst.buffer, t2 = dst.offset, t3 = t1.length, DC = 8, j = 0; j < 16; ++j) { t4 = t2 + (-1 + j * 32); if (!(t4 >= 0 && t4 < t3)) return A.ioore(t1, t4); DC += t1[t4]; } A.VP8Filter_Put16(B.JSInt_methods._shrOtherPositive$1(DC, 4), dst); }, VP8Filter_DC16NoLeft(dst) { var t1, t2, t3, DC, i, t4; for (t1 = dst.buffer, t2 = dst.offset, t3 = t1.length, DC = 8, i = 0; i < 16; ++i) { t4 = t2 + (i - 32); if (!(t4 >= 0 && t4 < t3)) return A.ioore(t1, t4); DC += t1[t4]; } A.VP8Filter_Put16(B.JSInt_methods._shrOtherPositive$1(DC, 4), dst); }, VP8Filter_DC16NoTopLeft(dst) { A.VP8Filter_Put16(128, dst); }, VP8Filter_VE8uv(dst) { var j; for (j = 0; j < 8; ++j) dst.memcpy$4(j * 32, 8, dst, -32); }, VP8Filter_HE8uv(dst) { var di, j, t1, t2, t3; for (di = 0, j = 0; j < 8; ++j) { t1 = dst.buffer; t2 = dst.offset; t3 = t2 + (di - 1); if (!(t3 >= 0 && t3 < t1.length)) return A.ioore(t1, t3); t2 += di; J.fillRange$3$ax(t1, t2, t2 + 8, t1[t3]); di += 32; } }, VP8Filter_Put8x8uv(value, dst) { var j, t1, t2; for (j = 0; j < 8; ++j) { t1 = dst.buffer; t2 = dst.offset + j * 32; J.fillRange$3$ax(t1, t2, t2 + 8, value); } }, VP8Filter_DC8uv(dst) { var t1, t2, t3, dc0, i, t4, t5; for (t1 = dst.buffer, t2 = dst.offset, t3 = t1.length, dc0 = 8, i = 0; i < 8; ++i) { t4 = t2 + (i - 32); if (!(t4 >= 0 && t4 < t3)) return A.ioore(t1, t4); t4 = t1[t4]; t5 = t2 + (-1 + i * 32); if (!(t5 >= 0 && t5 < t3)) return A.ioore(t1, t5); dc0 += t4 + t1[t5]; } A.VP8Filter_Put8x8uv(B.JSInt_methods._shrOtherPositive$1(dc0, 4), dst); }, VP8Filter_DC8uvNoLeft(dst) { var t1, t2, t3, dc0, i, t4; for (t1 = dst.buffer, t2 = dst.offset, t3 = t1.length, dc0 = 4, i = 0; i < 8; ++i) { t4 = t2 + (i - 32); if (!(t4 >= 0 && t4 < t3)) return A.ioore(t1, t4); dc0 += t1[t4]; } A.VP8Filter_Put8x8uv(B.JSInt_methods._shrOtherPositive$1(dc0, 3), dst); }, VP8Filter_DC8uvNoTop(dst) { var t1, t2, t3, dc0, i, t4; for (t1 = dst.buffer, t2 = dst.offset, t3 = t1.length, dc0 = 4, i = 0; i < 8; ++i) { t4 = t2 + (-1 + i * 32); if (!(t4 >= 0 && t4 < t3)) return A.ioore(t1, t4); dc0 += t1[t4]; } A.VP8Filter_Put8x8uv(B.JSInt_methods._shrOtherPositive$1(dc0, 3), dst); }, VP8Filter_DC8uvNoTopLeft(dst) { A.VP8Filter_Put8x8uv(128, dst); }, VP8Filter__store(dst, di, x, y, v) { var t1 = di + x + y * 32, t2 = dst.buffer, t3 = dst.offset + t1; if (!(t3 >= 0 && t3 < t2.length)) return A.ioore(t2, t3); t3 = t2[t3] + B.JSInt_methods._shrOtherPositive$1(v, 3); if ((t3 & -256) >>> 0 === 0) t2 = t3; else t2 = t3 < 0 ? 0 : 255; dst.$indexSet(0, t1, t2); }, VP8Filter__store2(dst, y, dc, d, c) { A.VP8Filter__store(dst, 0, 0, y, dc + d); A.VP8Filter__store(dst, 0, 1, y, dc + c); A.VP8Filter__store(dst, 0, 2, y, dc - c); A.VP8Filter__store(dst, 0, 3, y, dc - d); }, VP8Filter__initTables() { var i, t1, t2; if (!$.VP8Filter__tablesInitialized) { for (i = -255; i <= 255; ++i) { t1 = $.$get$VP8Filter_abs0(); t2 = 255 + i; t1[t2] = i < 0 ? -i : i; $.$get$VP8Filter_abs1()[t2] = B.JSInt_methods._shrOtherPositive$1(t1[t2], 1); } for (i = -1020; i <= 1020; ++i) { t1 = $.$get$VP8Filter_sclip1(); if (i < -128) t2 = -128; else t2 = i > 127 ? 127 : i; t1[1020 + i] = t2; } for (i = -112; i <= 112; ++i) { t1 = $.$get$VP8Filter_sclip2(); if (i < -16) t2 = -16; else t2 = i > 15 ? 15 : i; t1[112 + i] = t2; } for (i = -255; i <= 510; ++i) { t1 = $.$get$VP8Filter_clip1(); if (i < 0) t2 = 0; else t2 = i > 255 ? 255 : i; t1[255 + i] = t2; } $.VP8Filter__tablesInitialized = true; } }, VP8Filter: function VP8Filter() { }, VP8BandProbas$() { var _i, _list = J.JSArray_JSArray$allocateFixed(3, type$.Uint8List); for (_i = 0; _i < 3; ++_i) _list[_i] = new Uint8Array(11); return new A.VP8BandProbas(_list); }, VP8Proba$() { var t2, _i, _list0, _i0, t1 = new Uint8Array(3), _list = J.JSArray_JSArray$allocateFixed(4, type$.List_VP8BandProbas); for (t2 = type$.VP8BandProbas, _i = 0; _i < 4; ++_i) { _list0 = J.JSArray_JSArray$allocateFixed(8, t2); for (_i0 = 0; _i0 < 8; ++_i0) _list0[_i0] = A.VP8BandProbas$(); _list[_i] = _list0; } B.NativeUint8List_methods.fillRange$3(t1, 0, 3, 255); return new A.VP8Proba(t1, _list); }, VP8FrameHeader: function VP8FrameHeader() { this.__VP8FrameHeader_partitionLength = $; }, VP8PictureHeader: function VP8PictureHeader() { }, VP8SegmentHeader: function VP8SegmentHeader(t0, t1) { var _ = this; _.updateMap = _.useSegment = false; _.absoluteDelta = true; _.quantizer = t0; _.filterStrength = t1; }, VP8BandProbas: function VP8BandProbas(t0) { this.probas = t0; }, VP8Proba: function VP8Proba(t0, t1) { this.segments = t0; this.bands = t1; }, VP8FilterHeader: function VP8FilterHeader(t0, t1) { var _ = this; _.__VP8FilterHeader_simple = $; _.level = null; _.__VP8FilterHeader_useLfDelta = _.__VP8FilterHeader_sharpness = $; _.refLfDelta = t0; _.modeLfDelta = t1; }, VP8FInfo: function VP8FInfo() { var _ = this; _.fInnerLevel = _.fLimit = 0; _.fInner = false; _.hevThresh = 0; }, VP8MB: function VP8MB() { this.nzDc = this.nz = 0; }, VP8QuantMatrix: function VP8QuantMatrix(t0, t1, t2) { this.y1Mat = t0; this.y2Mat = t1; this.uvMat = t2; }, VP8MBData: function VP8MBData(t0, t1) { var _ = this; _.coeffs = t0; _.__VP8MBData_isIntra4x4 = $; _.imodes = t1; _.nonZeroY = _.uvmode = null; _.__VP8MBData_nonZeroUV = $; }, VP8TopSamples: function VP8TopSamples(t0, t1, t2) { this.y = t0; this.u = t1; this.v = t2; }, VP8L$(input, webp) { var t5, t6, _s8_ = "_buffer8", t1 = A._setArrayType([], type$.JSArray_HTreeGroup), t2 = A._setArrayType([], type$.JSArray_VP8LTransform), t3 = new Uint32Array(2), t4 = new A.VP8LBitReader(input, t3); t3 = t4.__VP8LBitReader__buffer8 = A.NativeUint8List_NativeUint8List$view(t3.buffer, 0, null); t5 = A._lateReadCheck(t3, _s8_); t6 = input.readByte$0(); if (0 >= t5.length) return A.ioore(t5, 0); t5[0] = t6; t6 = A._lateReadCheck(t3, _s8_); t5 = input.readByte$0(); if (1 >= t6.length) return A.ioore(t6, 1); t6[1] = t5; t5 = A._lateReadCheck(t3, _s8_); t6 = input.readByte$0(); if (2 >= t5.length) return A.ioore(t5, 2); t5[2] = t6; t6 = A._lateReadCheck(t3, _s8_); t5 = input.readByte$0(); if (3 >= t6.length) return A.ioore(t6, 3); t6[3] = t5; t5 = A._lateReadCheck(t3, _s8_); t6 = input.readByte$0(); if (4 >= t5.length) return A.ioore(t5, 4); t5[4] = t6; t6 = A._lateReadCheck(t3, _s8_); t5 = input.readByte$0(); if (5 >= t6.length) return A.ioore(t6, 5); t6[5] = t5; t5 = A._lateReadCheck(t3, _s8_); t6 = input.readByte$0(); if (6 >= t5.length) return A.ioore(t5, 6); t5[6] = t6; t3 = A._lateReadCheck(t3, _s8_); t6 = input.readByte$0(); if (7 >= t3.length) return A.ioore(t3, 7); t3[7] = t6; return new A.VP8L(t4, webp, t1, t2); }, VP8L__subSampleSize(size, samplingBits) { return B.JSInt_methods._shrOtherPositive$1(size + B.JSInt_methods._shlPositive$1(1, samplingBits) - 1, samplingBits); }, VP8L: function VP8L(t0, t1, t2, t3) { var _ = this; _.br = t0; _.webp = t1; _.image = null; _._colorCacheSize = _._lastRow = _._lastPixel = 0; _._colorCache = null; _._huffmanXsize = _._huffmanSubsampleBits = _._huffmanMask = 0; _._huffmanImage = null; _._numHtreeGroups = 0; _._htreeGroups = t2; _._transforms = t3; _._transformsSeen = 0; _._pixels = null; _.__VP8L__pixels8 = $; _._ioWidth = _._opaque = _._argbCache = null; }, InternalVP8L: function InternalVP8L(t0, t1, t2, t3) { var _ = this; _.br = t0; _.webp = t1; _.image = null; _._colorCacheSize = _._lastRow = _._lastPixel = 0; _._colorCache = null; _._huffmanXsize = _._huffmanSubsampleBits = _._huffmanMask = 0; _._huffmanImage = null; _._numHtreeGroups = 0; _._htreeGroups = t2; _._transforms = t3; _._transformsSeen = 0; _._pixels = null; _.__VP8L__pixels8 = $; _._ioWidth = _._opaque = _._argbCache = null; }, VP8LBitReader: function VP8LBitReader(t0, t1) { var _ = this; _.bitPos = 0; _._vp8l_bit_reader$_input = t0; _._vp8l_bit_reader$_buffer = t1; _.__VP8LBitReader__buffer8 = $; }, VP8LColorCache: function VP8LColorCache(t0, t1) { this.colors = t0; this.hashShift = t1; }, VP8LTransform__addPixelsEq(pixels, a, b) { var pa; if (!(a >= 0 && a < pixels.length)) return A.ioore(pixels, a); pa = pixels[a]; pixels[a] = (((pa & 4278255360) >>> 0) + ((b & 4278255360) >>> 0) & 4278255360 | (pa & 16711935) + (b & 16711935) & 16711935) >>> 0; }, VP8LTransform__average2(a0, a1) { return ((a0 ^ a1) >>> 1 & 2139062143) + ((a0 & a1) >>> 0); }, VP8LTransform__clip255(a) { if (a < 0) return 0; if (a > 255) return 255; return a; }, VP8LTransform__sub3(a, b, c) { return Math.abs(b - c) - Math.abs(a - c); }, VP8LTransform__predictor0(pixels, left, $top) { return 4278190080; }, VP8LTransform__predictor1(pixels, left, $top) { return left; }, VP8LTransform__predictor2(pixels, left, $top) { if (!($top >= 0 && $top < pixels.length)) return A.ioore(pixels, $top); return pixels[$top]; }, VP8LTransform__predictor3(pixels, left, $top) { var t1 = $top + 1; if (!(t1 >= 0 && t1 < pixels.length)) return A.ioore(pixels, t1); return pixels[t1]; }, VP8LTransform__predictor4(pixels, left, $top) { var t1 = $top - 1; if (!(t1 >= 0 && t1 < pixels.length)) return A.ioore(pixels, t1); return pixels[t1]; }, VP8LTransform__predictor5(pixels, left, $top) { var t2, t3, t1 = pixels.length; if (!($top >= 0 && $top < t1)) return A.ioore(pixels, $top); t2 = pixels[$top]; t3 = $top + 1; if (!(t3 < t1)) return A.ioore(pixels, t3); return A.VP8LTransform__average2(A.VP8LTransform__average2(left, pixels[t3]), t2); }, VP8LTransform__predictor6(pixels, left, $top) { var t1 = $top - 1; if (!(t1 >= 0 && t1 < pixels.length)) return A.ioore(pixels, t1); return A.VP8LTransform__average2(left, pixels[t1]); }, VP8LTransform__predictor7(pixels, left, $top) { if (!($top >= 0 && $top < pixels.length)) return A.ioore(pixels, $top); return A.VP8LTransform__average2(left, pixels[$top]); }, VP8LTransform__predictor8(pixels, left, $top) { var t1 = $top - 1, t2 = pixels.length; if (!(t1 >= 0 && t1 < t2)) return A.ioore(pixels, t1); t1 = pixels[t1]; if (!($top >= 0 && $top < t2)) return A.ioore(pixels, $top); return A.VP8LTransform__average2(t1, pixels[$top]); }, VP8LTransform__predictor9(pixels, left, $top) { var t2, t3, t1 = pixels.length; if (!($top >= 0 && $top < t1)) return A.ioore(pixels, $top); t2 = pixels[$top]; t3 = $top + 1; if (!(t3 < t1)) return A.ioore(pixels, t3); return A.VP8LTransform__average2(t2, pixels[t3]); }, VP8LTransform__predictor10(pixels, left, $top) { var t3, t4, t1 = $top - 1, t2 = pixels.length; if (!(t1 >= 0 && t1 < t2)) return A.ioore(pixels, t1); t1 = pixels[t1]; if (!($top >= 0 && $top < t2)) return A.ioore(pixels, $top); t3 = pixels[$top]; t4 = $top + 1; if (!(t4 < t2)) return A.ioore(pixels, t4); t4 = pixels[t4]; return A.VP8LTransform__average2(A.VP8LTransform__average2(left, t1), A.VP8LTransform__average2(t3, t4)); }, VP8LTransform__predictor11(pixels, left, $top) { var t2, t3, t1 = pixels.length; if (!($top >= 0 && $top < t1)) return A.ioore(pixels, $top); t2 = pixels[$top]; t3 = $top - 1; if (!(t3 >= 0 && t3 < t1)) return A.ioore(pixels, t3); t3 = pixels[t3]; return A.VP8LTransform__sub3(t2 >>> 24, left >>> 24, t3 >>> 24) + A.VP8LTransform__sub3(t2 >>> 16 & 255, left >>> 16 & 255, t3 >>> 16 & 255) + A.VP8LTransform__sub3(t2 >>> 8 & 255, left >>> 8 & 255, t3 >>> 8 & 255) + A.VP8LTransform__sub3(t2 & 255, left & 255, t3 & 255) <= 0 ? t2 : left; }, VP8LTransform__predictor12(pixels, left, $top) { var t2, t3, t1 = pixels.length; if (!($top >= 0 && $top < t1)) return A.ioore(pixels, $top); t2 = pixels[$top]; t3 = $top - 1; if (!(t3 >= 0 && t3 < t1)) return A.ioore(pixels, t3); t3 = pixels[t3]; return (A.VP8LTransform__clip255((left >>> 24) + (t2 >>> 24) - (t3 >>> 24)) << 24 | A.VP8LTransform__clip255((left >>> 16 & 255) + (t2 >>> 16 & 255) - (t3 >>> 16 & 255)) << 16 | A.VP8LTransform__clip255((left >>> 8 & 255) + (t2 >>> 8 & 255) - (t3 >>> 8 & 255)) << 8 | A.VP8LTransform__clip255((left & 255) + (t2 & 255) - (t3 & 255))) >>> 0; }, VP8LTransform__predictor13(pixels, left, $top) { var t2, t3, avg, t4, t5, t1 = pixels.length; if (!($top >= 0 && $top < t1)) return A.ioore(pixels, $top); t2 = pixels[$top]; t3 = $top - 1; if (!(t3 >= 0 && t3 < t1)) return A.ioore(pixels, t3); t3 = pixels[t3]; avg = A.VP8LTransform__average2(left, t2); t2 = avg >>> 24; t1 = avg >>> 16 & 255; t4 = avg >>> 8 & 255; t5 = avg >>> 0 & 255; return (A.VP8LTransform__clip255(t2 + B.JSInt_methods._tdivFast$1(t2 - (t3 >>> 24), 2)) << 24 | A.VP8LTransform__clip255(t1 + B.JSInt_methods._tdivFast$1(t1 - (t3 >>> 16 & 255), 2)) << 16 | A.VP8LTransform__clip255(t4 + B.JSInt_methods._tdivFast$1(t4 - (t3 >>> 8 & 255), 2)) << 8 | A.VP8LTransform__clip255(t5 + B.JSInt_methods._tdivFast$1(t5 - (t3 & 255), 2))) >>> 0; }, VP8LTransform: function VP8LTransform() { var _ = this; _.ysize = _.xsize = _.type = 0; _.data = null; _.bits = 0; }, WebPAlpha: function WebPAlpha(t0, t1, t2) { var _ = this; _.input = t0; _.width = t1; _.height = t2; _.preProcessing = _.filter = _.method = 0; _.rsrv = 1; _.isAlphaDecoded = false; _.__WebPAlpha__vp8l = $; _._use8bDecode = false; }, WebPFrame: function WebPFrame() { }, InternalWebPFrame: function InternalWebPFrame() { this._reserved = 1; this.__WebPFrame__frameSize = this.__WebPFrame__framePosition = $; }, HuffmanTree$() { var t1 = new Uint8Array(128), t2 = new Int16Array(128); t1 = new A.HuffmanTree(t1, t2, new Int16Array(128)); t1._init$1(0); return t1; }, HTreeGroup$() { var _i, _list = J.JSArray_JSArray$allocateFixed(5, type$.HuffmanTree); for (_i = 0; _i < 5; ++_i) _list[_i] = A.HuffmanTree$(); return new A.HTreeGroup(_list); }, HuffmanTree: function HuffmanTree(t0, t1, t2) { var _ = this; _.lutBits = t0; _.lutSymbol = t1; _.lutJump = t2; _.__HuffmanTree_tree = $; _.numNodes = _.maxNodes = 0; }, HTreeGroup: function HTreeGroup(t0) { this.htrees = t0; }, WebPInfo: function WebPInfo(t0) { var _ = this; _.hasAnimation = _.hasAlpha = false; _.format = 0; _.frames = t0; _._numFrames = _._frame = 0; _._webp_info$_alphaData = null; _.height = _.width = _._vp8Size = _._vp8Position = 0; }, InternalWebPInfo: function InternalWebPInfo(t0) { var _ = this; _.hasAnimation = _.hasAlpha = false; _.format = 0; _.frames = t0; _._numFrames = _._frame = 0; _._webp_info$_alphaData = null; _.height = _.width = _._vp8Size = _._vp8Position = 0; }, WebPDecoder: function WebPDecoder() { this._webp_decoder$_input = this._info = null; }, HdrImage: function HdrImage(t0) { var _ = this; _.slices = t0; _.alpha = _.blue = _.green = _.red = null; }, HdrSlice_allocateDataForType(size, type, bitsPerSample) { switch (type) { case 1: if (bitsPerSample === 8) return new Int8Array(size); else if (bitsPerSample === 16) return new Int16Array(size); else if (bitsPerSample === 32) return new Int32Array(size); break; case 0: if (bitsPerSample === 8) return new Uint8Array(size); else if (bitsPerSample === 16) return new Uint16Array(size); else if (bitsPerSample === 32) return new Uint32Array(size); break; case 3: if (bitsPerSample === 16) return new Uint16Array(size); else if (bitsPerSample === 32) return new Float32Array(size); else if (bitsPerSample === 64) return new Float64Array(size); break; } throw A.wrapException(A.UnimplementedError$(null)); }, HdrSlice$($name, width, height, type, bitsPerSample) { return new A.HdrSlice($name, width, height, type, bitsPerSample, A.HdrSlice_allocateDataForType(width * height, type, bitsPerSample)); }, HdrSlice: function HdrSlice(t0, t1, t2, t3, t4, t5) { var _ = this; _.name = t0; _.width = t1; _.height = t2; _.type = t3; _.bitsPerSample = t4; _.data = t5; }, hdrToImage(hdr, exposure) { var m, t1, t2, y, di, t3, x, r, pi, g, b, ri, gi, bi, mi, di0, a, _gamma = new A.hdrToImage__gamma(new A.hdrToImage__knee()), image = A.Image$(hdr.get$width(hdr), hdr.get$height(hdr), B.Channels_1, null, null), pixels = image.getBytes$0(); if (!(hdr.red != null || hdr.green != null || hdr.blue != null)) throw A.wrapException(A.ImageException$("Only RGB[A] images are currently supported.")); m = Math.pow(2, B.JSNumber_methods.clamp$2(exposure + 2.47393, -20, 20)); t1 = pixels.length; t2 = hdr.slices; y = 0; di = 0; while (true) { if (t2._length === 0) t3 = 0; else { t3 = t2.get$values(t2); t3 = t3._f.call$1(J.get$first$ax(t3.__internal$_iterable)).height; } if (!(y < t3)) break; x = 0; while (true) { if (t2._length === 0) t3 = 0; else { t3 = t2.get$values(t2); t3 = t3._f.call$1(J.get$first$ax(t3.__internal$_iterable)).width; } if (!(x < t3)) break; t3 = hdr.red; if (t3 != null) if (t3.type === 3) { t3 = t3.getFloat$2(x, y); r = t3; } else { pi = y * t3.width + x; t3 = t3.data; if (!(pi >= 0 && pi < t3.length)) return A.ioore(t3, pi); t3 = A._asInt(t3[pi]); r = t3; } else r = 0; if (t2._length === 1) g = r; else { t3 = hdr.green; if (t3 != null) { if (t3.type === 3) t3 = t3.getFloat$2(x, y); else { pi = y * t3.width + x; t3 = t3.data; if (!(pi >= 0 && pi < t3.length)) return A.ioore(t3, pi); t3 = A._asInt(t3[pi]); } g = t3; } else g = 0; } if (t2._length === 1) b = r; else { t3 = hdr.blue; if (t3 != null) { if (t3.type === 3) t3 = t3.getFloat$2(x, y); else { pi = y * t3.width + x; t3 = t3.data; if (!(pi >= 0 && pi < t3.length)) return A.ioore(t3, pi); t3 = A._asInt(t3[pi]); } b = t3; } else b = 0; } if (r == 1 / 0 || r == -1 / 0 || isNaN(r)) r = 0; if (g == 1 / 0 || g == -1 / 0 || isNaN(g)) g = 0; if (b == 1 / 0 || b == -1 / 0 || isNaN(b)) b = 0; ri = _gamma.call$2(r, m); gi = _gamma.call$2(g, m); bi = _gamma.call$2(b, m); mi = Math.max(ri, Math.max(gi, bi)); if (mi > 255) { ri = 255 * (ri / mi); gi = 255 * (gi / mi); bi = 255 * (bi / mi); } di0 = di + 1; t3 = B.JSNumber_methods.toInt$0(B.JSNumber_methods.clamp$2(ri, 0, 255)); if (!(di >= 0 && di < t1)) return A.ioore(pixels, di); pixels[di] = t3; di = di0 + 1; t3 = B.JSNumber_methods.toInt$0(B.JSNumber_methods.clamp$2(gi, 0, 255)); if (!(di0 >= 0 && di0 < t1)) return A.ioore(pixels, di0); pixels[di0] = t3; di0 = di + 1; t3 = B.JSNumber_methods.toInt$0(B.JSNumber_methods.clamp$2(bi, 0, 255)); if (!(di >= 0 && di < t1)) return A.ioore(pixels, di); pixels[di] = t3; t3 = hdr.alpha; if (t3 != null) { a = t3.getFloat$2(x, y); if (a == 1 / 0 || a == -1 / 0 || isNaN(a)) a = 1; di = di0 + 1; t3 = B.JSNumber_methods.toInt$0(B.JSNumber_methods.clamp$2(a * 255, 0, 255)); if (!(di0 >= 0 && di0 < t1)) return A.ioore(pixels, di0); pixels[di0] = t3; } else { di = di0 + 1; if (!(di0 >= 0 && di0 < t1)) return A.ioore(pixels, di0); pixels[di0] = 255; } ++x; } ++y; } return image; }, hdrToImage__knee: function hdrToImage__knee() { }, hdrToImage__gamma: function hdrToImage__gamma(t0) { this._knee = t0; }, ICCPCompression: function ICCPCompression(t0, t1) { this.index = t0; this._core$_name = t1; }, ICCProfileData: function ICCProfileData(t0, t1, t2) { this.name = t0; this.compression = t1; this.data = t2; }, Image$(width, height, channels, exif, iccp) { return new A.Image(width, height, channels, 0, 0, 0, B.DisposeMode_1, B.BlendMode_1, new Uint32Array(width * height), A.ExifData$from(exif), iccp); }, Image$from(other) { var t3, t1 = new A.Image(other.width, other.height, other.channels, other.xOffset, other.yOffset, other.duration, other.disposeMethod, other.blendMethod, B.NativeUint32List_methods.sublist$1(other.data, 0), A.ExifData$from(other.exif), other.iccProfile), t2 = other.textData; if (t2 != null) { t3 = type$.String; t1.set$textData(A.LinkedHashMap_LinkedHashMap$from(t2, t3, t3)); } return t1; }, Format: function Format(t0, t1) { this.index = t0; this._core$_name = t1; }, Channels: function Channels(t0, t1) { this.index = t0; this._core$_name = t1; }, BlendMode: function BlendMode(t0, t1) { this.index = t0; this._core$_name = t1; }, DisposeMode: function DisposeMode(t0, t1) { this.index = t0; this._core$_name = t1; }, Image: function Image(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10) { var _ = this; _.width = t0; _.height = t1; _.channels = t2; _.xOffset = t3; _.yOffset = t4; _.duration = t5; _.disposeMethod = t6; _.blendMethod = t7; _.data = t8; _.exif = t9; _.iccProfile = t10; _.textData = null; }, Image_getPixelLinear__linear: function Image_getPixelLinear__linear(t0, t1) { this.dx = t0; this.dy = t1; }, Image_getPixelCubic__cubic: function Image_getPixelCubic__cubic() { }, ImageException$(message) { return new A.ImageException(message); }, ImageException: function ImageException(t0) { this.message = t0; }, ditherPixels(image, quantizer, kernel, serpentine) { var t1, ds, height, width, data, indexedPixels, t2, i1, t3, t4, index, y, x, idx, r1, t5, g1, b1, r2, g2, er, eg, eb, i, x1, y1, t6, d; if (kernel === B.DitherKernel_0) return quantizer.getIndexMap$1(image); t1 = kernel.index; if (!(t1 < 5)) return A.ioore(B.List_Y2m, t1); ds = B.List_Y2m[t1]; height = image.height; width = image.width; data = new Uint8Array(A._ensureNativeList(image.getBytes$0())); t1 = width * height; indexedPixels = new Uint8Array(t1); t2 = A._lateReadCheck(quantizer.__NeuralQuantizer_colorMap, "colorMap"); for (i1 = ds.length, t3 = data.length, i1 - 1, t4 = t2.length, width - 1, index = 0, y = 0; y < height; ++y) for (x = 0; x !== width; ++x, ++index) { idx = index * 4; if (!(idx < t3)) return A.ioore(data, idx); r1 = data[idx]; t5 = idx + 1; if (!(t5 < t3)) return A.ioore(data, t5); g1 = data[t5]; t5 = idx + 2; if (!(t5 < t3)) return A.ioore(data, t5); b1 = data[t5]; idx = quantizer._inxSearch$3(b1, g1, r1); if (!(index >= 0 && index < t1)) return A.ioore(indexedPixels, index); indexedPixels[index] = idx; idx *= 3; if (!(idx >= 0 && idx < t4)) return A.ioore(t2, idx); r2 = t2[idx]; t5 = idx + 1; if (!(t5 < t4)) return A.ioore(t2, t5); g2 = t2[t5]; t5 = idx + 2; if (!(t5 < t4)) return A.ioore(t2, t5); er = r1 - r2; eg = g1 - g2; eb = b1 - t2[t5]; if (er === 0 && eg === 0 && eb === 0) continue; for (i = 0; i !== i1; ++i) { if (!(i >= 0 && i < i1)) return A.ioore(ds, i); t5 = ds[i]; x1 = B.JSNumber_methods.toInt$0(t5[1]); y1 = B.JSNumber_methods.toInt$0(t5[2]); t6 = x1 + x; if (t6 >= 0) if (t6 < width) { t6 = y1 + y; t6 = t6 >= 0 && t6 < height; } else t6 = false; else t6 = false; if (t6) { d = t5[0]; idx = (index + x1 + y1 * width) * 4; if (!(idx >= 0 && idx < t3)) return A.ioore(data, idx); B.NativeUint8List_methods.$indexSet(data, idx, Math.max(0, Math.min(255, B.JSNumber_methods.toInt$0(data[idx] + er * d)))); t5 = idx + 1; if (!(t5 < t3)) return A.ioore(data, t5); B.NativeUint8List_methods.$indexSet(data, t5, Math.max(0, Math.min(255, B.JSNumber_methods.toInt$0(data[t5] + eg * d)))); t5 = idx + 2; if (!(t5 < t3)) return A.ioore(data, t5); B.NativeUint8List_methods.$indexSet(data, t5, Math.max(0, Math.min(255, B.JSNumber_methods.toInt$0(data[t5] + eb * d)))); } } } return indexedPixels; }, DitherKernel: function DitherKernel(t0, t1) { this.index = t0; this._core$_name = t1; }, InputBuffer$(buffer, bigEndian, $length, offset) { return new A.InputBuffer(buffer, offset, $length == null ? buffer.length : offset + $length, offset, bigEndian); }, InputBuffer$from(other, $length, offset) { var t1 = other.buffer, t2 = other.offset + offset, t3 = other.start, t4 = $length == null ? other.end : t2 + $length; return new A.InputBuffer(t1, t3, t4, t2, other.bigEndian); }, InputBuffer: function InputBuffer(t0, t1, t2, t3, t4) { var _ = this; _.buffer = t0; _.start = t1; _.end = t2; _.offset = t3; _.bigEndian = t4; }, Interpolation: function Interpolation(t0, t1) { this.index = t0; this._core$_name = t1; }, NeuralQuantizer$(image, samplingFactor) { var t1 = new A.NeuralQuantizer(samplingFactor, new Int32Array(256)); t1._initialize$1(256); t1._learn$1(image); t1._fix$0(); t1._inxBuild$0(); t1._copyColorMap$0(); return t1; }, NeuralQuantizer: function NeuralQuantizer(t0, t1) { var _ = this; _.__NeuralQuantizer_colorMap = $; _.samplingFactor = t0; _.netSize = 16; _.specials = 3; _.__NeuralQuantizer_cutNetSize = _.__NeuralQuantizer_bgColor = $; _.maxNetPos = null; _.__NeuralQuantizer__colorMap = _.__NeuralQuantizer__network = _.__NeuralQuantizer__radiusPower = _.__NeuralQuantizer_initBiasRadius = _.__NeuralQuantizer_initRadius = $; _._netIndex = t1; _.__NeuralQuantizer__freq = _.__NeuralQuantizer__bias = $; }, OutputBuffer$(bigEndian, size) { return new A.OutputBuffer(bigEndian, new Uint8Array(size)); }, OutputBuffer: function OutputBuffer(t0, t1) { this.length = 0; this.bigEndian = t0; this._buffer = t1; }, Quantizer: function Quantizer() { }, generateUploadKeysImplementation(args) { var roomKeys, dbSession, sess, roomKeyBackup, payload, encrypted, e, s, t1, t2, t3, t4, t5, t6, _i, t7, t8, roomKeyBackup0, t9, t10, t11, exception, enc = new Olm.PkEncryption(); try { J.set_recipient_key$1$x(enc, args.pubkey); t1 = type$.String; roomKeys = new A.RoomKeys(A.LinkedHashMap_LinkedHashMap$_empty(t1, type$.RoomKeyBackup)); for (t2 = args.dbSessions, t3 = t2.length, t4 = type$.dynamic, t5 = args.userId, t6 = type$.KeyBackupData, _i = 0; _i < t2.length; t2.length === t3 || (0, A.throwConcurrentModificationError)(t2), ++_i) { dbSession = t2[_i]; sess = A.SessionKey$fromDb(dbSession.dbSession, t5); if (sess.inboundGroupSession == null) continue; t7 = roomKeys.rooms; t8 = sess.roomId; roomKeyBackup0 = t7.$index(0, t8); if (roomKeyBackup0 == null) { roomKeyBackup0 = new A.RoomKeyBackup(A.LinkedHashMap_LinkedHashMap$_empty(t1, t6)); t7.$indexSet(0, t8, roomKeyBackup0); } roomKeyBackup = roomKeyBackup0; t7 = sess.get$forwardingCurve25519KeyChain(); t8 = sess.senderKey; t9 = A._lateReadCheck(sess.__SessionKey_senderClaimedKeys, "senderClaimedKeys"); t10 = sess.inboundGroupSession; t10.toString; t11 = sess.inboundGroupSession; t11.toString; payload = A.LinkedHashMap_LinkedHashMap$_literal(["algorithm", "m.megolm.v1.aes-sha2", "forwarding_curve25519_key_chain", t7, "sender_key", t8, "sender_clencaimed_keys", t9, "session_key", J.export_session$1$x(t10, J.first_known_index$0$x(t11))], t1, t4); encrypted = J.encrypt$1$x(enc, B.C_JsonCodec.encode$1(payload)); t11 = roomKeyBackup.sessions; t10 = sess.sessionId; t9 = sess.inboundGroupSession; t9.toString; t11.$indexSet(0, t10, new A.KeyBackupData(J.first_known_index$0$x(t9), sess.get$forwardingCurve25519KeyChain().length, dbSession.verified, A.LinkedHashMap_LinkedHashMap$_literal(["ephemeral", J.get$ephemeral$x(encrypted), "ciphertext", J.get$ciphertext$x(encrypted), "mac", J.get$mac$x(encrypted)], t1, t4))); } return roomKeys; } catch (exception) { e = A.unwrapException(exception); s = A.getTraceFromException(exception); t1 = $.$get$Logs__singleton(); t1.addLogEvent$1(new A.LogEvent("[Key Manager] Error generating payload", e, type$.nullable_StackTrace._as(s), B.Level_1)); throw exception; } finally { J.free$0$x(enc); } }, GenerateUploadKeysArgs_GenerateUploadKeysArgs$fromJson(json) { return new A.GenerateUploadKeysArgs(A._asString(json.$index(0, "pubkey")), J.map$1$1$ax(type$.Iterable_dynamic._as(json.$index(0, "dbSessions")), new A.GenerateUploadKeysArgs_GenerateUploadKeysArgs$fromJson_closure(), type$._DbInboundGroupSessionBundle).toList$0(0), A._asString(json.$index(0, "userId"))); }, _DbInboundGroupSessionBundle: function _DbInboundGroupSessionBundle(t0, t1) { this.dbSession = t0; this.verified = t1; }, GenerateUploadKeysArgs: function GenerateUploadKeysArgs(t0, t1, t2) { this.pubkey = t0; this.dbSessions = t1; this.userId = t2; }, GenerateUploadKeysArgs_GenerateUploadKeysArgs$fromJson_closure: function GenerateUploadKeysArgs_GenerateUploadKeysArgs$fromJson_closure() { }, GenerateUploadKeysArgs_toJson_closure: function GenerateUploadKeysArgs_toJson_closure() { }, SessionKey$fromDb(dbEntry, key) { var t1 = A.Event_getMapFromPayload(dbEntry.content), t2 = type$.String, t3 = type$.dynamic; A.FilterMap_catchMap(A.Event_getMapFromPayload(dbEntry.indexes), new A.SessionKey$fromDb_closure(), t2, t3, t2, t2); A.FilterMap_catchMap(A.Event_getMapFromPayload(dbEntry.allowedAtIndex), new A.SessionKey$fromDb_closure0(), t2, t3, t2, type$.Map_String_int); t1 = new A.SessionKey(t1, new Olm.InboundGroupSession(), dbEntry.senderKey, dbEntry.roomId, dbEntry.sessionId); t1.SessionKey$fromDb$2(dbEntry, key); return t1; }, SessionKey: function SessionKey(t0, t1, t2, t3, t4) { var _ = this; _.content = t0; _.inboundGroupSession = t1; _.__SessionKey_senderClaimedKeys = $; _.senderKey = t2; _.roomId = t3; _.sessionId = t4; }, SessionKey$fromDb_closure: function SessionKey$fromDb_closure() { }, SessionKey$fromDb_closure0: function SessionKey$fromDb_closure0() { }, SessionKey$fromDb_closure1: function SessionKey$fromDb_closure1() { }, SessionKey$fromDb_closure2: function SessionKey$fromDb_closure2() { }, StoredInboundGroupSession: function StoredInboundGroupSession(t0, t1, t2, t3, t4, t5, t6, t7, t8) { var _ = this; _.roomId = t0; _.sessionId = t1; _.pickle = t2; _.content = t3; _.indexes = t4; _.allowedAtIndex = t5; _.uploaded = t6; _.senderKey = t7; _.senderClaimedKeys = t8; }, Pbkdf2Params: function Pbkdf2Params() { }, AesCtrParams: function AesCtrParams() { }, MatrixImageFile_calcMetadataImplementation(bytes) { var image = A.decodeImage(bytes); if (image == null) return null; return new A.MatrixImageFileResizedResponse(bytes, image.width, image.height, A.BlurHash_BlurHash$encode(image, 4, 3).hash, null, null); }, MatrixImageFile_resizeImplementation($arguments) { var bytes, _null = null, image = A.decodeImage($arguments.bytes), t1 = image.height, t2 = image.width, t3 = t1 > t2 ? $arguments.maxDimension : _null, resized = A.copyResize(image, t3, t2 >= t1 ? $arguments.maxDimension : _null), encoded = A.encodeNamedImage(resized, $arguments.fileName); if (encoded == null) return _null; bytes = new Uint8Array(A._ensureNativeList(encoded)); t3 = $arguments.calcBlurhash ? A.BlurHash_BlurHash$encode(resized, 4, 3).hash : _null; return new A.MatrixImageFileResizedResponse(bytes, resized.width, resized.height, t3, t1, t2); }, MatrixImageFileResizedResponse: function MatrixImageFileResizedResponse(t0, t1, t2, t3, t4, t5) { var _ = this; _.bytes = t0; _.width = t1; _.height = t2; _.blurhash = t3; _.originalHeight = t4; _.originalWidth = t5; }, MatrixImageFileResizeArguments: function MatrixImageFileResizeArguments(t0, t1, t2, t3) { var _ = this; _.bytes = t0; _.maxDimension = t1; _.fileName = t2; _.calcBlurhash = t3; }, WebWorkerData: function WebWorkerData(t0, t1, t2) { this.label = t0; this.name = t1; this.data = t2; }, WebWorkerOperations: function WebWorkerOperations(t0, t1) { this.index = t0; this._core$_name = t1; }, startWebWorker() { var $async$goto = 0, $async$completer = A._makeAsyncAwaitCompleter(type$.void), t1; var $async$startWebWorker = A._wrapJsFunctionForAsync(function($async$errorCode, $async$result) { if ($async$errorCode === 1) return A._asyncRethrow($async$result, $async$completer); while (true) switch ($async$goto) { case 0: // Function start A.print("[native implementations worker]: Starting..."); t1 = $.$get$_context().$index(0, "self"); if (t1 == null) t1 = type$.Object._as(t1); t1.onmessage = A.allowInterop(new A.startWebWorker_closure(), type$.Future_Null_Function_MessageEvent); // implicit return return A._asyncReturn(null, $async$completer); } }); return A._asyncStartSync($async$startWebWorker, $async$completer); }, sendResponse(label, response) { var e, s, t1, exception; try { self.self; t1 = A.LinkedHashMap_LinkedHashMap$_literal(["label", label, "data", response], type$.String, type$.dynamic); self.self.postMessage(A.jsify(t1)); } catch (exception) { e = A.unwrapException(exception); s = A.getTraceFromException(exception); A.print(string$._nativ + A.S(e) + ", " + A.S(s)); } }, _replyError(error, stackTrace, origin) { var jsError, e, s, exception, t1; error = error; type$.StackTrace._as(stackTrace); A._asDouble(origin); if (error != null) try { jsError = A.jsify(error); if (jsError != null) error = jsError; } catch (exception) { error = J.toString$0$(error); } try { self.self; t1 = A.LinkedHashMap_LinkedHashMap$_literal(["label", "stacktrace", "origin", origin, "error", error, "stacktrace", stackTrace.toString$0(0)], type$.String, type$.nullable_Object); self.self.postMessage(A.jsify(t1)); } catch (exception) { e = A.unwrapException(exception); s = A.getTraceFromException(exception); A.print(string$._nativ + A.S(e) + ", " + A.S(s)); } }, startWebWorker_closure: function startWebWorker_closure() { }, KeyBackupData: function KeyBackupData(t0, t1, t2, t3) { var _ = this; _.firstMessageIndex = t0; _.forwardedCount = t1; _.isVerified = t2; _.sessionData = t3; }, RoomKeyBackup: function RoomKeyBackup(t0) { this.sessions = t0; }, RoomKeyBackup_toJson_closure: function RoomKeyBackup_toJson_closure() { }, RoomKeys: function RoomKeys(t0) { this.rooms = t0; }, RoomKeys_toJson_closure: function RoomKeys_toJson_closure() { }, FilterMap_filterMap(_this, f, $K, $V, K2, V2) { var t1 = K2._eval$1("@<0>")._bind$1(V2), t2 = A.LinkedHashMap_LinkedHashMap$_empty(K2, V2); t2.addEntries$1(t2, new A.WhereTypeIterable(J.get$entries$x(_this).map$1$1(0, new A.FilterMap_filterMap_closure(f, $K, $V, K2, V2), t1._eval$1("MapEntry<1,2>?")), t1._eval$1("WhereTypeIterable>"))); return t2; }, FilterMap_catchMap(_this, f, $K, $V, K2, V2) { return A.FilterMap_filterMap(_this, new A.FilterMap_catchMap_closure(f, $K, $V, K2, V2), $K, $V, K2, V2); }, FilterMap_filterMap_closure: function FilterMap_filterMap_closure(t0, t1, t2, t3, t4) { var _ = this; _.f = t0; _.K = t1; _.V = t2; _.K2 = t3; _.V2 = t4; }, FilterMap_catchMap_closure: function FilterMap_catchMap_closure(t0, t1, t2, t3, t4) { var _ = this; _.f = t0; _.K = t1; _.V = t2; _.K2 = t3; _.V2 = t4; }, Level: function Level(t0, t1) { this.index = t0; this._core$_name = t1; }, Logs: function Logs(t0) { this.outputEvents = t0; }, LogEvent: function LogEvent(t0, t1, t2, t3) { var _ = this; _.title = t0; _.exception = t1; _.stackTrace = t2; _.level = t3; }, EncryptResult: function EncryptResult() { }, DecryptResult: function DecryptResult() { }, Account: function Account() { }, Session: function Session() { }, Utility: function Utility() { }, InboundGroupSession: function InboundGroupSession() { }, OutboundGroupSession: function OutboundGroupSession() { }, SAS: function SAS() { }, PkEncryptResult: function PkEncryptResult() { }, PkEncryption: function PkEncryption() { }, PkDecryption: function PkDecryption() { }, PkSigning: function PkSigning() { }, max(a, b, $T) { A.checkTypeBound($T, type$.num, "T", "max"); return Math.max($T._as(a), $T._as(b)); }, Uint64List_Uint64List($length) { throw A.wrapException(A.UnsupportedError$("Uint64List not supported on the web.")); }, Uint32List_Uint32List$view(buffer, offsetInBytes) { var $length; A._checkViewArguments(buffer, offsetInBytes, null); $length = B.JSInt_methods._tdivFast$1(buffer.byteLength - offsetInBytes, 4); return new Uint32Array(buffer, offsetInBytes, $length); }, Float32List_Float32List$view(buffer) { var $length; A._checkViewArguments(buffer, 0, null); $length = B.JSInt_methods._tdivFast$1(buffer.byteLength - 0, 4); return new Float32Array(buffer, 0, $length); }, Float64List_Float64List$view(buffer) { return buffer.asFloat64List$2(0, 0, null); }, isBrowserObject(o) { return type$.Blob._is(o) || type$.Event._is(o) || type$.KeyRange._is(o) || type$.ImageData._is(o) || type$.Node._is(o) || type$.Window._is(o) || type$.WorkerGlobalScope._is(o); }, printString(string) { if (typeof dartPrint == "function") { dartPrint(string); return; } if (typeof console == "object" && typeof console.log != "undefined") { console.log(string); return; } if (typeof window == "object") return; if (typeof print == "function") { print(string); return; } throw "Unable to print message: " + String(string); }, getAdler32(array) { var len0, s1, s2, i, n, i0, len = array.length; for (len0 = len, s1 = 1, s2 = 0, i = 0; len0 > 0;) { n = 3800 > len0 ? len0 : 3800; len0 -= n; for (; --n, n >= 0; i = i0) { i0 = i + 1; if (!(i >= 0 && i < len)) return A.ioore(array, i); s1 += array[i] & 255; s2 += s1; } s1 = B.JSInt_methods.$mod(s1, 65521); s2 = B.JSInt_methods.$mod(s2, 65521); } return (s2 << 16 | s1) >>> 0; }, getCrc32(array, crc) { var ip, ip0, t2, t1 = J.getInterceptor$asx(array), len = t1.get$length(array); crc ^= 4294967295; for (ip = 0; len >= 8;) { ip0 = ip + 1; t2 = t1.$index(array, ip); if (typeof t2 !== "number") return A.iae(t2); crc = B.List_B8J[(crc ^ t2) & 255] ^ crc >>> 8; ip = ip0 + 1; t2 = t1.$index(array, ip0); if (typeof t2 !== "number") return A.iae(t2); crc = B.List_B8J[(crc ^ t2) & 255] ^ crc >>> 8; ip0 = ip + 1; t2 = t1.$index(array, ip); if (typeof t2 !== "number") return A.iae(t2); crc = B.List_B8J[(crc ^ t2) & 255] ^ crc >>> 8; ip = ip0 + 1; t2 = t1.$index(array, ip0); if (typeof t2 !== "number") return A.iae(t2); crc = B.List_B8J[(crc ^ t2) & 255] ^ crc >>> 8; ip0 = ip + 1; t2 = t1.$index(array, ip); if (typeof t2 !== "number") return A.iae(t2); crc = B.List_B8J[(crc ^ t2) & 255] ^ crc >>> 8; ip = ip0 + 1; t2 = t1.$index(array, ip0); if (typeof t2 !== "number") return A.iae(t2); crc = B.List_B8J[(crc ^ t2) & 255] ^ crc >>> 8; ip0 = ip + 1; t2 = t1.$index(array, ip); if (typeof t2 !== "number") return A.iae(t2); crc = B.List_B8J[(crc ^ t2) & 255] ^ crc >>> 8; ip = ip0 + 1; t2 = t1.$index(array, ip0); if (typeof t2 !== "number") return A.iae(t2); crc = B.List_B8J[(crc ^ t2) & 255] ^ crc >>> 8; len -= 8; } if (len > 0) do { ip0 = ip + 1; t2 = t1.$index(array, ip); if (typeof t2 !== "number") return A.iae(t2); crc = B.List_B8J[(crc ^ t2) & 255] ^ crc >>> 8; if (--len, len > 0) { ip = ip0; continue; } else break; } while (true); return (crc ^ 4294967295) >>> 0; }, encode83(value, $length) { var i, t2, t3, t4, t1 = B.Map_61Q1t.get$keys(B.Map_61Q1t); t1 = A.List_List$of(t1, true, A._instanceType(t1)._eval$1("Iterable.E")); for (i = 1, t2 = ""; i <= $length; ++i, t2 = t3) { t3 = B.JSNumber_methods.toInt$0(B.JSNumber_methods.$mod(value / Math.pow(83, $length - i), 83)); t4 = t3 >= 0 && t3 < t1.length; if (t4) { if (!(t3 >= 0 && t3 < t1.length)) return A.ioore(t1, t3); t3 = t1[t3]; } else t3 = null; t3 = t2 + A.S(t3); } return t2.charCodeAt(0) == 0 ? t2 : t2; }, getColor(r, g, b, a) { return (B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(a, 0, 255)) << 24 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(b, 0, 255)) << 16 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(g, 0, 255)) << 8 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(r, 0, 255))) >>> 0; }, ExrWavelet_decode(input, si, nx, ox, ny, oy, mx) { var p, p0, a_b, t1, p2, ey, oy1, oy2, ox1, ox2, t2, t3, py, ex, px, p01, p10, p11, t4, i00, i10, i01, i11, w14 = mx < 16384, n = nx > ny ? ny : nx; for (p = 1; p <= n;) p = p << 1 >>> 0; p = p >>> 1; p0 = p >>> 1; a_b = A._setArrayType([0, 0], type$.JSArray_int); for (t1 = input.length, p2 = p, p = p0; p >= 1; p2 = p, p = p0) { ey = si + oy * (ny - p2); oy1 = oy * p; oy2 = oy * p2; ox1 = ox * p; ox2 = ox * p2; for (t2 = (nx & p) >>> 0 !== 0, t3 = ox * (nx - p2), py = si; py <= ey; py += oy2) { ex = py + t3; for (px = py; px <= ex; px += ox2) { p01 = px + ox1; p10 = px + oy1; p11 = p10 + ox1; if (w14) { if (!(px >= 0 && px < t1)) return A.ioore(input, px); t4 = input[px]; if (!(p10 >= 0 && p10 < t1)) return A.ioore(input, p10); A.ExrWavelet_wdec14(t4, input[p10], a_b); i00 = a_b[0]; i10 = a_b[1]; if (!(p01 >= 0 && p01 < t1)) return A.ioore(input, p01); t4 = input[p01]; if (!(p11 >= 0 && p11 < t1)) return A.ioore(input, p11); A.ExrWavelet_wdec14(t4, input[p11], a_b); i01 = a_b[0]; i11 = a_b[1]; A.ExrWavelet_wdec14(i00, i01, a_b); input[px] = a_b[0]; input[p01] = a_b[1]; A.ExrWavelet_wdec14(i10, i11, a_b); input[p10] = a_b[0]; input[p11] = a_b[1]; } else { if (!(px >= 0 && px < t1)) return A.ioore(input, px); t4 = input[px]; if (!(p10 >= 0 && p10 < t1)) return A.ioore(input, p10); A.ExrWavelet_wdec16(t4, input[p10], a_b); i00 = a_b[0]; i10 = a_b[1]; if (!(p01 >= 0 && p01 < t1)) return A.ioore(input, p01); t4 = input[p01]; if (!(p11 >= 0 && p11 < t1)) return A.ioore(input, p11); A.ExrWavelet_wdec16(t4, input[p11], a_b); i01 = a_b[0]; i11 = a_b[1]; A.ExrWavelet_wdec16(i00, i01, a_b); input[px] = a_b[0]; input[p01] = a_b[1]; A.ExrWavelet_wdec16(i10, i11, a_b); input[p10] = a_b[0]; input[p11] = a_b[1]; } } if (t2) { p10 = px + oy1; if (w14) { if (!(px >= 0 && px < t1)) return A.ioore(input, px); t4 = input[px]; if (!(p10 >= 0 && p10 < t1)) return A.ioore(input, p10); A.ExrWavelet_wdec14(t4, input[p10], a_b); i00 = a_b[0]; input[p10] = a_b[1]; } else { if (!(px >= 0 && px < t1)) return A.ioore(input, px); t4 = input[px]; if (!(p10 >= 0 && p10 < t1)) return A.ioore(input, p10); A.ExrWavelet_wdec16(t4, input[p10], a_b); i00 = a_b[0]; input[p10] = a_b[1]; } if (!(px >= 0 && px < t1)) return A.ioore(input, px); input[px] = i00; } } if ((ny & p) >>> 0 !== 0) { ex = py + t3; for (px = py; px <= ex; px += ox2) { p01 = px + ox1; if (w14) { if (!(px >= 0 && px < t1)) return A.ioore(input, px); t2 = input[px]; if (!(p01 >= 0 && p01 < t1)) return A.ioore(input, p01); A.ExrWavelet_wdec14(t2, input[p01], a_b); i00 = a_b[0]; input[p01] = a_b[1]; } else { if (!(px >= 0 && px < t1)) return A.ioore(input, px); t2 = input[px]; if (!(p01 >= 0 && p01 < t1)) return A.ioore(input, p01); A.ExrWavelet_wdec16(t2, input[p01], a_b); i00 = a_b[0]; input[p01] = a_b[1]; } if (!(px >= 0 && px < t1)) return A.ioore(input, px); input[px] = i00; } } p0 = p >>> 1; } }, ExrWavelet_wdec14(l, h, a_b) { var t2, t3, ls, hs, ai, t1 = $.$get$__uint16(); t1[0] = l; t2 = $.$get$__uint16ToInt16(); t3 = t2.length; if (0 >= t3) return A.ioore(t2, 0); ls = t2[0]; t1[0] = h; if (0 >= t3) return A.ioore(t2, 0); hs = t2[0]; ai = ls + (hs & 1) + B.JSInt_methods._shrOtherPositive$1(hs, 1); B.JSArray_methods.$indexSet(a_b, 0, ai); B.JSArray_methods.$indexSet(a_b, 1, ai - hs); }, ExrWavelet_wdec16(l, h, a_b) { var bb = l - B.JSInt_methods._shrOtherPositive$1(h, 1) & 65535; B.JSArray_methods.$indexSet(a_b, 1, bb); B.JSArray_methods.$indexSet(a_b, 0, h + bb - 32768 & 65535); }, findDecoderForData(data) { var png, gif, webp, tiff, tga, ico, t1, _null = null; type$.List_int._as(data); if (A.JpegData$().validate$1(data)) return new A.JpegDecoder(); png = new A.PngDecoder(); if (png.isValidFile$1(data)) return png; gif = new A.GifDecoder(); gif._input = A.InputBuffer$(data, false, _null, 0); gif.info = new A.GifInfo(A._setArrayType([], type$.JSArray_GifImageDesc)); if (gif._getInfo$0()) return gif; webp = new A.WebPDecoder(); if (webp.isValidFile$1(data)) return webp; tiff = new A.TiffDecoder(); if (tiff._readHeader$1(A.InputBuffer$(data, false, _null, 0)) != null) return tiff; if (A.PsdImage$(data).signature === 943870035) return new A.PsdDecoder(); if (A.ExrImage_isValidFile(data)) return new A.ExrDecoder(); if (A.BitmapFileHeader_isValidFile(A.InputBuffer$(data, false, _null, 0))) return new A.BmpDecoder(); tga = new A.TgaDecoder(); if (tga.isValidFile$1(data)) return tga; ico = new A.IcoDecoder(); t1 = A.InputBuffer$(data, false, _null, 0); ico._ico_decoder$_input = t1; t1 = A.IcoInfo__read(t1); ico._icoInfo = t1; if (t1 != null) return ico; return _null; }, decodeImage(data) { var decoder = A.findDecoderForData(data); if (decoder == null) return null; return decoder.decodeImage$1(data); }, encodeNamedImage(image, $name) { var t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, _null = null, n = $name.toLowerCase(); if (B.JSString_methods.endsWith$1(n, ".jpg") || B.JSString_methods.endsWith$1(n, ".jpeg")) { t1 = new Uint8Array(64); t2 = new Uint8Array(64); t3 = new Float32Array(64); t4 = new Float32Array(64); t5 = A.List_List$filled(65535, _null, false, type$.nullable_List_int); t6 = type$.nullable_int; t7 = A.List_List$filled(65535, _null, false, t6); t8 = A.List_List$filled(64, _null, false, t6); t6 = A.List_List$filled(64, _null, false, t6); t9 = new Float32Array(64); t10 = new Float32Array(64); t11 = new Float32Array(64); t1 = new A.JpegEncoder(t1, t2, t3, t4, t5, t7, t8, t6, t9, t10, t11, new Int32Array(2048)); t1.set$YDC_HT(t1._computeHuffmanTbl$2(B.List_F1L0, B.List_UiL)); t1.set$UVDC_HT(t1._computeHuffmanTbl$2(B.List_F1L1, B.List_UiL)); t2 = type$.List_nullable_List_int; t1.set$__JpegEncoder_YAC_HT(t2._as(t1._computeHuffmanTbl$2(B.List_F1L2, B.List_G61))); t1.set$__JpegEncoder_UVAC_HT(t2._as(t1._computeHuffmanTbl$2(B.List_F1L3, B.List_AKW))); t1._initCategoryNumber$0(); t1._initRGBYUVTable$0(); t1.setQuality$1(100); return t1.encodeImage$1(image); } if (B.JSString_methods.endsWith$1(n, ".png")) return A.PngEncoder$(6).encodeImage$1(image); if (B.JSString_methods.endsWith$1(n, ".tga")) return new A.TgaEncoder().encodeImage$1(image); if (B.JSString_methods.endsWith$1(n, ".gif")) { t1 = new A.GifEncoder(10); t1.addFrame$1(image); t1 = t1.finish$0(0); t1.toString; return t1; } if (B.JSString_methods.endsWith$1(n, ".cur")) return new A.CurEncoder().encodeImages$1(A._setArrayType([image], type$.JSArray_Image)); if (B.JSString_methods.endsWith$1(n, ".ico")) return new A.IcoEncoder().encodeImages$1(A._setArrayType([image], type$.JSArray_Image)); if (B.JSString_methods.endsWith$1(n, ".bmp")) return new A.BmpEncoder().encodeImage$1(image); return _null; }, quantizeAndInverse(quantizationTable, coefBlock, dataOut, dataIn) { var t1, i, t2, t3, row, t, v0, t4, v1, v2, t5, v3, t6, t7, t8, v4, v7, v5, v6, t9, t10, t11, t12; if ($._dctClip == null) { t1 = $._dctClip = new Uint8Array(768); for (i = -256; i < 0; ++i) t1[256 + i] = 0; for (i = 0; i < 256; ++i) t1[256 + i] = i; for (i = 256; i < 512; ++i) t1[256 + i] = 255; } for (t1 = coefBlock.length, i = 0; i < 64; ++i) { if (!(i < t1)) return A.ioore(coefBlock, i); t2 = coefBlock[i]; t3 = quantizationTable[i]; if (!(i < 64)) return A.ioore(dataIn, i); dataIn[i] = t2 * t3; } for (row = 0, i = 0; i < 8; ++i, row += 8) { t1 = 1 + row; if (!(t1 < 64)) return A.ioore(dataIn, t1); t2 = dataIn[t1]; if (t2 === 0) { t3 = 2 + row; if (!(t3 < 64)) return A.ioore(dataIn, t3); if (dataIn[t3] === 0) { t3 = 3 + row; if (!(t3 < 64)) return A.ioore(dataIn, t3); if (dataIn[t3] === 0) { t3 = 4 + row; if (!(t3 < 64)) return A.ioore(dataIn, t3); if (dataIn[t3] === 0) { t3 = 5 + row; if (!(t3 < 64)) return A.ioore(dataIn, t3); if (dataIn[t3] === 0) { t3 = 6 + row; if (!(t3 < 64)) return A.ioore(dataIn, t3); if (dataIn[t3] === 0) { t3 = 7 + row; if (!(t3 < 64)) return A.ioore(dataIn, t3); t3 = dataIn[t3] === 0; } else t3 = false; } else t3 = false; } else t3 = false; } else t3 = false; } else t3 = false; } else t3 = false; if (t3) { if (!(row < 64)) return A.ioore(dataIn, row); t1 = B.JSInt_methods._shrOtherPositive$1(5793 * dataIn[row] + 512, 10); t = (t1 & 2147483647) - ((t1 & 2147483648) >>> 0); if (!(row < 64)) return A.ioore(dataIn, row); dataIn[row] = t; t1 = row + 1; if (!(t1 < 64)) return A.ioore(dataIn, t1); dataIn[t1] = t; t1 = row + 2; if (!(t1 < 64)) return A.ioore(dataIn, t1); dataIn[t1] = t; t1 = row + 3; if (!(t1 < 64)) return A.ioore(dataIn, t1); dataIn[t1] = t; t1 = row + 4; if (!(t1 < 64)) return A.ioore(dataIn, t1); dataIn[t1] = t; t1 = row + 5; if (!(t1 < 64)) return A.ioore(dataIn, t1); dataIn[t1] = t; t1 = row + 6; if (!(t1 < 64)) return A.ioore(dataIn, t1); dataIn[t1] = t; t1 = row + 7; if (!(t1 < 64)) return A.ioore(dataIn, t1); dataIn[t1] = t; continue; } if (!(row < 64)) return A.ioore(dataIn, row); t3 = B.JSInt_methods._shrOtherPositive$1(5793 * dataIn[row] + 128, 8); v0 = (t3 & 2147483647) - ((t3 & 2147483648) >>> 0); t3 = 4 + row; if (!(t3 < 64)) return A.ioore(dataIn, t3); t4 = B.JSInt_methods._shrOtherPositive$1(5793 * dataIn[t3] + 128, 8); v1 = (t4 & 2147483647) - ((t4 & 2147483648) >>> 0); t4 = 2 + row; if (!(t4 < 64)) return A.ioore(dataIn, t4); v2 = dataIn[t4]; t5 = 6 + row; if (!(t5 < 64)) return A.ioore(dataIn, t5); v3 = dataIn[t5]; t6 = 7 + row; if (!(t6 < 64)) return A.ioore(dataIn, t6); t7 = dataIn[t6]; t8 = B.JSInt_methods._shrOtherPositive$1(2896 * (t2 - t7) + 128, 8); v4 = (t8 & 2147483647) - ((t8 & 2147483648) >>> 0); t7 = B.JSInt_methods._shrOtherPositive$1(2896 * (t2 + t7) + 128, 8); v7 = (t7 & 2147483647) - ((t7 & 2147483648) >>> 0); t7 = 3 + row; if (!(t7 < 64)) return A.ioore(dataIn, t7); t2 = dataIn[t7] << 4; v5 = (t2 & 2147483647) - ((t2 & 2147483648) >>> 0); t2 = 5 + row; if (!(t2 < 64)) return A.ioore(dataIn, t2); t8 = dataIn[t2] << 4; v6 = (t8 & 2147483647) - ((t8 & 2147483648) >>> 0); t8 = B.JSInt_methods._shrOtherPositive$1(v0 - v1 + 1, 1); t = (t8 & 2147483647) - ((t8 & 2147483648) >>> 0); t8 = B.JSInt_methods._shrOtherPositive$1(v0 + v1 + 1, 1); v0 = (t8 & 2147483647) - ((t8 & 2147483648) >>> 0); t8 = B.JSInt_methods._shrOtherPositive$1(v2 * 3784 + v3 * 1567 + 128, 8); t8 = (t8 & 2147483647) - ((t8 & 2147483648) >>> 0); t9 = B.JSInt_methods._shrOtherPositive$1(v2 * 1567 - v3 * 3784 + 128, 8); v2 = (t9 & 2147483647) - ((t9 & 2147483648) >>> 0); t9 = B.JSInt_methods._shrOtherPositive$1(v4 - v6 + 1, 1); t9 = (t9 & 2147483647) - ((t9 & 2147483648) >>> 0); t10 = B.JSInt_methods._shrOtherPositive$1(v4 + v6 + 1, 1); v4 = (t10 & 2147483647) - ((t10 & 2147483648) >>> 0); t10 = B.JSInt_methods._shrOtherPositive$1(v7 + v5 + 1, 1); t10 = (t10 & 2147483647) - ((t10 & 2147483648) >>> 0); t11 = B.JSInt_methods._shrOtherPositive$1(v7 - v5 + 1, 1); v5 = (t11 & 2147483647) - ((t11 & 2147483648) >>> 0); t11 = B.JSInt_methods._shrOtherPositive$1(v0 - t8 + 1, 1); t11 = (t11 & 2147483647) - ((t11 & 2147483648) >>> 0); t8 = B.JSInt_methods._shrOtherPositive$1(v0 + t8 + 1, 1); v0 = (t8 & 2147483647) - ((t8 & 2147483648) >>> 0); t8 = B.JSInt_methods._shrOtherPositive$1(t - v2 + 1, 1); t8 = (t8 & 2147483647) - ((t8 & 2147483648) >>> 0); t12 = B.JSInt_methods._shrOtherPositive$1(t + v2 + 1, 1); v1 = (t12 & 2147483647) - ((t12 & 2147483648) >>> 0); t12 = B.JSInt_methods._shrOtherPositive$1(v4 * 2276 + t10 * 3406 + 2048, 12); t = (t12 & 2147483647) - ((t12 & 2147483648) >>> 0); t10 = B.JSInt_methods._shrOtherPositive$1(v4 * 3406 - t10 * 2276 + 2048, 12); v4 = (t10 & 2147483647) - ((t10 & 2147483648) >>> 0); t10 = B.JSInt_methods._shrOtherPositive$1(v5 * 799 + t9 * 4017 + 2048, 12); t10 = (t10 & 2147483647) - ((t10 & 2147483648) >>> 0); t9 = B.JSInt_methods._shrOtherPositive$1(v5 * 4017 - t9 * 799 + 2048, 12); v5 = (t9 & 2147483647) - ((t9 & 2147483648) >>> 0); if (!(row < 64)) return A.ioore(dataIn, row); dataIn[row] = v0 + t; if (!(t6 < 64)) return A.ioore(dataIn, t6); dataIn[t6] = v0 - t; if (!(t1 < 64)) return A.ioore(dataIn, t1); dataIn[t1] = v1 + t10; if (!(t5 < 64)) return A.ioore(dataIn, t5); dataIn[t5] = v1 - t10; if (!(t4 < 64)) return A.ioore(dataIn, t4); dataIn[t4] = t8 + v5; if (!(t2 < 64)) return A.ioore(dataIn, t2); dataIn[t2] = t8 - v5; if (!(t7 < 64)) return A.ioore(dataIn, t7); dataIn[t7] = t11 + v4; if (!(t3 < 64)) return A.ioore(dataIn, t3); dataIn[t3] = t11 - v4; } for (i = 0; i < 8; ++i) { t1 = 8 + i; t2 = dataIn[t1]; if (t2 === 0 && dataIn[16 + i] === 0 && dataIn[24 + i] === 0 && dataIn[32 + i] === 0 && dataIn[40 + i] === 0 && dataIn[48 + i] === 0 && dataIn[56 + i] === 0) { t2 = B.JSInt_methods._shrOtherPositive$1(5793 * dataIn[i] + 8192, 14); t = (t2 & 2147483647) - ((t2 & 2147483648) >>> 0); if (!(i < 64)) return A.ioore(dataIn, i); dataIn[i] = t; if (!(t1 < 64)) return A.ioore(dataIn, t1); dataIn[t1] = t; t1 = 16 + i; if (!(t1 < 64)) return A.ioore(dataIn, t1); dataIn[t1] = t; t1 = 24 + i; if (!(t1 < 64)) return A.ioore(dataIn, t1); dataIn[t1] = t; t1 = 32 + i; if (!(t1 < 64)) return A.ioore(dataIn, t1); dataIn[t1] = t; t1 = 40 + i; if (!(t1 < 64)) return A.ioore(dataIn, t1); dataIn[t1] = t; t1 = 48 + i; if (!(t1 < 64)) return A.ioore(dataIn, t1); dataIn[t1] = t; t1 = 56 + i; if (!(t1 < 64)) return A.ioore(dataIn, t1); dataIn[t1] = t; continue; } t3 = B.JSInt_methods._shrOtherPositive$1(5793 * dataIn[i] + 2048, 12); v0 = (t3 & 2147483647) - ((t3 & 2147483648) >>> 0); t3 = 32 + i; t4 = B.JSInt_methods._shrOtherPositive$1(5793 * dataIn[t3] + 2048, 12); v1 = (t4 & 2147483647) - ((t4 & 2147483648) >>> 0); t4 = 16 + i; v2 = dataIn[t4]; t5 = 48 + i; v3 = dataIn[t5]; t6 = 56 + i; t7 = dataIn[t6]; t8 = B.JSInt_methods._shrOtherPositive$1(2896 * (t2 - t7) + 2048, 12); v4 = (t8 & 2147483647) - ((t8 & 2147483648) >>> 0); t7 = B.JSInt_methods._shrOtherPositive$1(2896 * (t2 + t7) + 2048, 12); v7 = (t7 & 2147483647) - ((t7 & 2147483648) >>> 0); t7 = 24 + i; v5 = dataIn[t7]; t2 = 40 + i; v6 = dataIn[t2]; t8 = B.JSInt_methods._shrOtherPositive$1(v0 - v1 + 1, 1); t = (t8 & 2147483647) - ((t8 & 2147483648) >>> 0); t8 = B.JSInt_methods._shrOtherPositive$1(v0 + v1 + 1, 1); v0 = (t8 & 2147483647) - ((t8 & 2147483648) >>> 0); t8 = B.JSInt_methods._shrOtherPositive$1(v2 * 3784 + v3 * 1567 + 2048, 12); t8 = (t8 & 2147483647) - ((t8 & 2147483648) >>> 0); t9 = B.JSInt_methods._shrOtherPositive$1(v2 * 1567 - v3 * 3784 + 2048, 12); v2 = (t9 & 2147483647) - ((t9 & 2147483648) >>> 0); t9 = B.JSInt_methods._shrOtherPositive$1(v4 - v6 + 1, 1); t9 = (t9 & 2147483647) - ((t9 & 2147483648) >>> 0); t10 = B.JSInt_methods._shrOtherPositive$1(v4 + v6 + 1, 1); v4 = (t10 & 2147483647) - ((t10 & 2147483648) >>> 0); t10 = B.JSInt_methods._shrOtherPositive$1(v7 + v5 + 1, 1); t10 = (t10 & 2147483647) - ((t10 & 2147483648) >>> 0); t11 = B.JSInt_methods._shrOtherPositive$1(v7 - v5 + 1, 1); v5 = (t11 & 2147483647) - ((t11 & 2147483648) >>> 0); t11 = B.JSInt_methods._shrOtherPositive$1(v0 - t8 + 1, 1); t11 = (t11 & 2147483647) - ((t11 & 2147483648) >>> 0); t8 = B.JSInt_methods._shrOtherPositive$1(v0 + t8 + 1, 1); v0 = (t8 & 2147483647) - ((t8 & 2147483648) >>> 0); t8 = B.JSInt_methods._shrOtherPositive$1(t - v2 + 1, 1); t8 = (t8 & 2147483647) - ((t8 & 2147483648) >>> 0); t12 = B.JSInt_methods._shrOtherPositive$1(t + v2 + 1, 1); v1 = (t12 & 2147483647) - ((t12 & 2147483648) >>> 0); t12 = B.JSInt_methods._shrOtherPositive$1(v4 * 2276 + t10 * 3406 + 2048, 12); t = (t12 & 2147483647) - ((t12 & 2147483648) >>> 0); t10 = B.JSInt_methods._shrOtherPositive$1(v4 * 3406 - t10 * 2276 + 2048, 12); v4 = (t10 & 2147483647) - ((t10 & 2147483648) >>> 0); t10 = B.JSInt_methods._shrOtherPositive$1(v5 * 799 + t9 * 4017 + 2048, 12); t10 = (t10 & 2147483647) - ((t10 & 2147483648) >>> 0); t9 = B.JSInt_methods._shrOtherPositive$1(v5 * 4017 - t9 * 799 + 2048, 12); v5 = (t9 & 2147483647) - ((t9 & 2147483648) >>> 0); if (!(i < 64)) return A.ioore(dataIn, i); dataIn[i] = v0 + t; if (!(t6 < 64)) return A.ioore(dataIn, t6); dataIn[t6] = v0 - t; dataIn[t1] = v1 + t10; dataIn[t5] = v1 - t10; dataIn[t4] = t8 + v5; dataIn[t2] = t8 - v5; dataIn[t7] = t11 + v4; dataIn[t3] = t11 - v4; } for (t1 = $._dctClip, i = 0; i < 64; ++i) { t1.toString; t2 = B.JSInt_methods._shrOtherPositive$1(dataIn[i] + 8, 4); t2 = 384 + ((t2 & 2147483647) - ((t2 & 2147483648) >>> 0)); if (!(t2 >= 0 && t2 < 768)) return A.ioore(t1, t2); t2 = t1[t2]; if (!(i < 64)) return A.ioore(dataOut, i); dataOut[i] = t2; } }, getImageFromJpeg(jpeg) { var flipWidthHeight, width, height, image, t4, t5, h1, w1, component1, lines, hShift1, vShift1, t6, t7, t8, t9, t10, t11, offset, y, t12, y1, component1Line, t13, t14, x, t15, x1, $Y, c, offset0, component2, component3, lines1, lines2, lines3, hShift2, vShift2, hShift3, vShift3, y2, y3, component2Line, component3Line, t16, t17, x2, x3, Cb, Cr, $R, $G, $B, colorTransform, component4, lines4, hShift4, vShift4, y4, component4Line, t18, t19, x4, $C, $M, Ye, $K, t20, t21, t1 = jpeg.exif.data, orientation = t1.containsKey$1(0, 274) ? A._asInt(t1.$index(0, 274)) : 0, t2 = jpeg.frame, t3 = t2.samplesPerLine; t3.toString; t2 = t2.scanLines; t2.toString; flipWidthHeight = orientation >= 5 && orientation <= 8; if (flipWidthHeight) width = t2; else width = t3; if (flipWidthHeight) height = t3; else height = t2; image = A.Image$(width, height, B.Channels_0, null, null); image.exif = new A.ExifData(A.LinkedHashMap_LinkedHashMap$_empty(type$.int, type$.dynamic)); for (t4 = A.LinkedHashMapKeyIterator$(t1, t1._modifications, A._instanceType(t1)._precomputed1); t4.moveNext$0();) { t5 = t4.__js_helper$_current; if (t5 !== 274) image.exif.data.$indexSet(0, t5, t1.$index(0, t5)); } h1 = t2 - 1; w1 = t3 - 1; t1 = jpeg.components; t2 = t1.length; switch (t2) { case 1: if (0 >= t2) return A.ioore(t1, 0); component1 = t1[0]; lines = component1.lines; hShift1 = component1.hScaleShift; vShift1 = component1.vScaleShift; t1 = image.data; t2 = t1.length; t3 = orientation === 8; t4 = orientation === 7; t5 = orientation === 6; t6 = orientation === 5; t7 = orientation === 4; t8 = orientation === 3; t9 = orientation === 2; t10 = image.width; t11 = lines.length; offset = 0; y = 0; while (true) { t12 = jpeg.frame.scanLines; t12.toString; if (!(y < t12)) break; y1 = B.JSInt_methods._shrBothPositive$1(y, vShift1); if (!(y1 < t11)) return A.ioore(lines, y1); component1Line = lines[y1]; t12 = h1 - y; t13 = t12 * t10; t14 = y * t10; x = 0; while (true) { t15 = jpeg.frame.samplesPerLine; t15.toString; if (!(x < t15)) break; x1 = B.JSInt_methods._shrBothPositive$1(x, hShift1); if (!(x1 < component1Line.length)) return A.ioore(component1Line, x1); $Y = component1Line[x1]; c = (B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(255, 0, 255)) << 24 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2($Y, 0, 255)) << 16 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2($Y, 0, 255)) << 8 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2($Y, 0, 255))) >>> 0; if (t9) { t15 = t14 + (w1 - x); if (!(t15 >= 0 && t15 < t2)) return A.ioore(t1, t15); t1[t15] = c; } else if (t8) { t15 = t13 + (w1 - x); if (!(t15 >= 0 && t15 < t2)) return A.ioore(t1, t15); t1[t15] = c; } else if (t7) { t15 = t13 + x; if (!(t15 >= 0 && t15 < t2)) return A.ioore(t1, t15); t1[t15] = c; } else if (t6) { t15 = x * t10 + y; if (!(t15 >= 0 && t15 < t2)) return A.ioore(t1, t15); t1[t15] = c; } else if (t5) { t15 = x * t10 + t12; if (!(t15 >= 0 && t15 < t2)) return A.ioore(t1, t15); t1[t15] = c; } else if (t4) { t15 = (w1 - x) * t10 + t12; if (!(t15 >= 0 && t15 < t2)) return A.ioore(t1, t15); t1[t15] = c; } else if (t3) { t15 = (w1 - x) * t10 + y; if (!(t15 >= 0 && t15 < t2)) return A.ioore(t1, t15); t1[t15] = c; } else { offset0 = offset + 1; if (!(offset >= 0 && offset < t2)) return A.ioore(t1, offset); t1[offset] = c; offset = offset0; } ++x; } ++y; } break; case 3: if (0 >= t2) return A.ioore(t1, 0); component1 = t1[0]; if (1 >= t2) return A.ioore(t1, 1); component2 = t1[1]; if (2 >= t2) return A.ioore(t1, 2); component3 = t1[2]; lines1 = component1.lines; lines2 = component2.lines; lines3 = component3.lines; hShift1 = component1.hScaleShift; vShift1 = component1.vScaleShift; hShift2 = component2.hScaleShift; vShift2 = component2.vScaleShift; hShift3 = component3.hScaleShift; vShift3 = component3.vScaleShift; t1 = image.data; t2 = t1.length; t3 = orientation === 8; t4 = orientation === 7; t5 = orientation === 6; t6 = orientation === 5; t7 = orientation === 4; t8 = orientation === 3; t9 = orientation === 2; t10 = image.width; t11 = lines1.length; t12 = lines2.length; t13 = lines3.length; offset = 0; y = 0; while (true) { t14 = jpeg.frame.scanLines; t14.toString; if (!(y < t14)) break; y1 = B.JSInt_methods._shrBothPositive$1(y, vShift1); y2 = B.JSInt_methods._shrBothPositive$1(y, vShift2); y3 = B.JSInt_methods._shrBothPositive$1(y, vShift3); if (!(y1 < t11)) return A.ioore(lines1, y1); component1Line = lines1[y1]; if (!(y2 < t12)) return A.ioore(lines2, y2); component2Line = lines2[y2]; if (!(y3 < t13)) return A.ioore(lines3, y3); component3Line = lines3[y3]; t14 = h1 - y; t15 = t14 * t10; t16 = y * t10; x = 0; while (true) { t17 = jpeg.frame.samplesPerLine; t17.toString; if (!(x < t17)) break; x1 = B.JSInt_methods._shrBothPositive$1(x, hShift1); x2 = B.JSInt_methods._shrBothPositive$1(x, hShift2); x3 = B.JSInt_methods._shrBothPositive$1(x, hShift3); if (!(x1 < component1Line.length)) return A.ioore(component1Line, x1); $Y = component1Line[x1] << 8 >>> 0; if (!(x2 < component2Line.length)) return A.ioore(component2Line, x2); Cb = component2Line[x2] - 128; if (!(x3 < component3Line.length)) return A.ioore(component3Line, x3); Cr = component3Line[x3] - 128; t17 = B.JSInt_methods._shrOtherPositive$1($Y + 359 * Cr + 128, 8); t17 = (t17 & 2147483647) - ((t17 & 2147483648) >>> 0); if (t17 < 0) $R = 0; else $R = t17 > 255 ? 255 : t17; t17 = B.JSInt_methods._shrOtherPositive$1($Y - 88 * Cb - 183 * Cr + 128, 8); t17 = (t17 & 2147483647) - ((t17 & 2147483648) >>> 0); if (t17 < 0) $G = 0; else $G = t17 > 255 ? 255 : t17; t17 = B.JSInt_methods._shrOtherPositive$1($Y + 454 * Cb + 128, 8); t17 = (t17 & 2147483647) - ((t17 & 2147483648) >>> 0); if (t17 < 0) $B = 0; else $B = t17 > 255 ? 255 : t17; c = (B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(255, 0, 255)) << 24 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2($B, 0, 255)) << 16 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2($G, 0, 255)) << 8 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2($R, 0, 255))) >>> 0; if (t9) { t17 = t16 + (w1 - x); if (!(t17 >= 0 && t17 < t2)) return A.ioore(t1, t17); t1[t17] = c; } else if (t8) { t17 = t15 + (w1 - x); if (!(t17 >= 0 && t17 < t2)) return A.ioore(t1, t17); t1[t17] = c; } else if (t7) { t17 = t15 + x; if (!(t17 >= 0 && t17 < t2)) return A.ioore(t1, t17); t1[t17] = c; } else if (t6) { t17 = x * t10 + y; if (!(t17 >= 0 && t17 < t2)) return A.ioore(t1, t17); t1[t17] = c; } else if (t5) { t17 = x * t10 + t14; if (!(t17 >= 0 && t17 < t2)) return A.ioore(t1, t17); t1[t17] = c; } else if (t4) { t17 = (w1 - x) * t10 + t14; if (!(t17 >= 0 && t17 < t2)) return A.ioore(t1, t17); t1[t17] = c; } else if (t3) { t17 = (w1 - x) * t10 + y; if (!(t17 >= 0 && t17 < t2)) return A.ioore(t1, t17); t1[t17] = c; } else { offset0 = offset + 1; if (!(offset >= 0 && offset < t2)) return A.ioore(t1, offset); t1[offset] = c; offset = offset0; } ++x; } ++y; } break; case 4: t3 = jpeg.adobe; if (t3 == null) throw A.wrapException(A.ImageException$("Unsupported color mode (4 components)")); colorTransform = t3.transformCode !== 0 && true; if (0 >= t2) return A.ioore(t1, 0); component1 = t1[0]; if (1 >= t2) return A.ioore(t1, 1); component2 = t1[1]; if (2 >= t2) return A.ioore(t1, 2); component3 = t1[2]; if (3 >= t2) return A.ioore(t1, 3); component4 = t1[3]; lines1 = component1.lines; lines2 = component2.lines; lines3 = component3.lines; lines4 = component4.lines; hShift1 = component1.hScaleShift; vShift1 = component1.vScaleShift; hShift2 = component2.hScaleShift; vShift2 = component2.vScaleShift; hShift3 = component3.hScaleShift; vShift3 = component3.vScaleShift; hShift4 = component4.hScaleShift; vShift4 = component4.vScaleShift; t1 = image.data; t2 = t1.length; t3 = orientation === 8; t4 = orientation === 7; t5 = orientation === 6; t6 = orientation === 5; t7 = orientation === 4; t8 = orientation === 3; t9 = orientation === 2; t10 = !colorTransform; t11 = image.width; t12 = lines1.length; t13 = lines2.length; t14 = lines3.length; t15 = lines4.length; offset = 0; y = 0; while (true) { t16 = jpeg.frame.scanLines; t16.toString; if (!(y < t16)) break; y1 = B.JSInt_methods._shrBothPositive$1(y, vShift1); y2 = B.JSInt_methods._shrBothPositive$1(y, vShift2); y3 = B.JSInt_methods._shrBothPositive$1(y, vShift3); y4 = B.JSInt_methods._shrBothPositive$1(y, vShift4); if (!(y1 < t12)) return A.ioore(lines1, y1); component1Line = lines1[y1]; if (!(y2 < t13)) return A.ioore(lines2, y2); component2Line = lines2[y2]; if (!(y3 < t14)) return A.ioore(lines3, y3); component3Line = lines3[y3]; if (!(y4 < t15)) return A.ioore(lines4, y4); component4Line = lines4[y4]; t16 = h1 - y; t17 = t16 * t11; t18 = y * t11; x = 0; while (true) { t19 = jpeg.frame.samplesPerLine; t19.toString; if (!(x < t19)) break; x1 = B.JSInt_methods._shrBothPositive$1(x, hShift1); x2 = B.JSInt_methods._shrBothPositive$1(x, hShift2); x3 = B.JSInt_methods._shrBothPositive$1(x, hShift3); x4 = B.JSInt_methods._shrBothPositive$1(x, hShift4); if (t10) { if (!(x1 < component1Line.length)) return A.ioore(component1Line, x1); $C = component1Line[x1]; if (!(x2 < component2Line.length)) return A.ioore(component2Line, x2); $M = component2Line[x2]; if (!(x3 < component3Line.length)) return A.ioore(component3Line, x3); Ye = component3Line[x3]; if (!(x4 < component4Line.length)) return A.ioore(component4Line, x4); $K = component4Line[x4]; } else { if (!(x1 < component1Line.length)) return A.ioore(component1Line, x1); $Y = component1Line[x1]; if (!(x2 < component2Line.length)) return A.ioore(component2Line, x2); Cb = component2Line[x2]; if (!(x3 < component3Line.length)) return A.ioore(component3Line, x3); Cr = component3Line[x3]; if (!(x4 < component4Line.length)) return A.ioore(component4Line, x4); $K = component4Line[x4]; t19 = Cr - 128; t20 = B.JSNumber_methods.toInt$0($Y + 1.402 * t19); if (t20 < 0) t20 = 0; else if (t20 > 255) t20 = 255; $C = 255 - t20; t20 = Cb - 128; t19 = B.JSNumber_methods.toInt$0($Y - 0.3441363 * t20 - 0.71413636 * t19); if (t19 < 0) t19 = 0; else if (t19 > 255) t19 = 255; $M = 255 - t19; t20 = B.JSNumber_methods.toInt$0($Y + 1.772 * t20); if (t20 < 0) t19 = 0; else t19 = t20 > 255 ? 255 : t20; Ye = 255 - t19; } t19 = B.JSInt_methods._shrOtherPositive$1($C * $K, 8); t20 = B.JSInt_methods._shrOtherPositive$1($M * $K, 8); t21 = B.JSInt_methods._shrOtherPositive$1(Ye * $K, 8); c = (B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(255, 0, 255)) << 24 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2((t21 & 2147483647) - ((t21 & 2147483648) >>> 0), 0, 255)) << 16 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2((t20 & 2147483647) - ((t20 & 2147483648) >>> 0), 0, 255)) << 8 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2((t19 & 2147483647) - ((t19 & 2147483648) >>> 0), 0, 255))) >>> 0; if (t9) { t19 = t18 + (w1 - x); if (!(t19 >= 0 && t19 < t2)) return A.ioore(t1, t19); t1[t19] = c; } else if (t8) { t19 = t17 + (w1 - x); if (!(t19 >= 0 && t19 < t2)) return A.ioore(t1, t19); t1[t19] = c; } else if (t7) { t19 = t17 + x; if (!(t19 >= 0 && t19 < t2)) return A.ioore(t1, t19); t1[t19] = c; } else if (t6) { t19 = x * t11 + y; if (!(t19 >= 0 && t19 < t2)) return A.ioore(t1, t19); t1[t19] = c; } else if (t5) { t19 = x * t11 + t16; if (!(t19 >= 0 && t19 < t2)) return A.ioore(t1, t19); t1[t19] = c; } else if (t4) { t19 = (w1 - x) * t11 + t16; if (!(t19 >= 0 && t19 < t2)) return A.ioore(t1, t19); t1[t19] = c; } else if (t3) { t19 = (w1 - x) * t11 + y; if (!(t19 >= 0 && t19 < t2)) return A.ioore(t1, t19); t1[t19] = c; } else { offset0 = offset + 1; if (!(offset >= 0 && offset < t2)) return A.ioore(t1, offset); t1[offset] = c; offset = offset0; } ++x; } ++y; } break; default: throw A.wrapException(A.ImageException$("Unsupported color mode")); } return image; }, WebPFilters_horizontalUnfilter(width, height, stride, row, numRows, data) { A.WebPFilters__doHorizontalFilter(data, width, height, stride, row, numRows, true, data); }, WebPFilters_verticalUnfilter(width, height, stride, row, num_rows, data) { A.WebPFilters__doVerticalFilter(data, width, height, stride, row, num_rows, true, data); }, WebPFilters_gradientUnfilter(width, height, stride, row, num_rows, data) { A.WebPFilters__doGradientFilter(data, width, height, stride, row, num_rows, true, data); }, WebPFilters__predictLine(src, pred, dst, $length, inverse) { var i, t1, t2, t3; for (i = 0; i < $length; ++i) { t1 = src.buffer; t2 = src.offset + i; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); t2 = t1[t2]; t1 = pred.buffer; t3 = pred.offset + i; if (!(t3 >= 0 && t3 < t1.length)) return A.ioore(t1, t3); t3 = t1[t3]; J.$indexSet$ax(dst.buffer, dst.offset + i, t2 + t3); } }, WebPFilters__doHorizontalFilter(src, width, height, stride, row, numRows, inverse, out) { var t1, t2, _null = null, startOffset = row * stride, lastRow = row + numRows, s = A.InputBuffer$(src, false, _null, startOffset), o = A.InputBuffer$(src, false, _null, startOffset), preds = A.InputBuffer$from(o, _null, 0); if (row === 0) { t1 = s.buffer; t2 = s.offset; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); o.$indexSet(0, 0, t1[t2]); A.WebPFilters__predictLine(A.InputBuffer$from(s, _null, 1), preds, A.InputBuffer$from(o, _null, 1), width - 1, true); preds.offset += stride; s.offset += stride; o.offset += stride; row = 1; } for (t1 = -stride, t2 = width - 1; row < lastRow;) { A.WebPFilters__predictLine(s, A.InputBuffer$from(preds, _null, t1), o, 1, true); A.WebPFilters__predictLine(A.InputBuffer$from(s, _null, 1), preds, A.InputBuffer$from(o, _null, 1), t2, true); ++row; preds.offset += stride; s.offset += stride; o.offset += stride; } }, WebPFilters__doVerticalFilter(src, width, height, stride, row, numRows, inverse, out) { var t1, t2, _null = null, startOffset = row * stride, last_row = row + numRows, s = A.InputBuffer$(src, false, _null, startOffset), o = A.InputBuffer$(out, false, _null, startOffset), preds = A.InputBuffer$from(o, _null, 0); if (row === 0) { t1 = s.buffer; t2 = s.offset; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); o.$indexSet(0, 0, t1[t2]); A.WebPFilters__predictLine(A.InputBuffer$from(s, _null, 1), preds, A.InputBuffer$from(o, _null, 1), width - 1, true); s.offset += stride; o.offset += stride; row = 1; } else preds.offset -= stride; for (; row < last_row;) { A.WebPFilters__predictLine(s, preds, o, width, true); ++row; preds.offset += stride; s.offset += stride; o.offset += stride; } }, WebPFilters__doGradientFilter(src, width, height, stride, row, numRows, inverse, out) { var t1, t2, w, t3, t4, t5, t6, t7, g, pred, _null = null, startOffset = row * stride, lastRow = row + numRows, s = A.InputBuffer$(src, false, _null, startOffset), o = A.InputBuffer$(out, false, _null, startOffset), preds = A.InputBuffer$from(o, _null, 0); if (row === 0) { t1 = s.buffer; t2 = s.offset; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); o.$indexSet(0, 0, t1[t2]); A.WebPFilters__predictLine(A.InputBuffer$from(s, _null, 1), preds, A.InputBuffer$from(o, _null, 1), width - 1, true); preds.offset += stride; s.offset += stride; o.offset += stride; row = 1; } for (t1 = -stride; row < lastRow;) { A.WebPFilters__predictLine(s, A.InputBuffer$from(preds, _null, t1), o, 1, true); for (w = 1; w < width; ++w) { t2 = preds.buffer; t3 = preds.offset; t4 = t3 + (w - 1); t5 = t2.length; if (!(t4 >= 0 && t4 < t5)) return A.ioore(t2, t4); t4 = t2[t4]; t6 = w - stride; t7 = t3 + t6; if (!(t7 >= 0 && t7 < t5)) return A.ioore(t2, t7); t7 = t2[t7]; t6 = t3 + (t6 - 1); if (!(t6 >= 0 && t6 < t5)) return A.ioore(t2, t6); g = t4 + t7 - t2[t6]; if ((g & 4294967040) >>> 0 === 0) pred = g; else pred = g < 0 ? 0 : 255; t2 = s.buffer; t3 = s.offset + w; if (!(t3 >= 0 && t3 < t2.length)) return A.ioore(t2, t3); t3 = t2[t3]; J.$indexSet$ax(o.buffer, o.offset + w, t3 + pred); } ++row; preds.offset += stride; s.offset += stride; o.offset += stride; } }, Half_DoubleToHalf(n) { var t1, x_i, e, m; if ($.Half__toFloatFloat32 == null) A.Half__initialize(); $.$get$__float32()[0] = n; t1 = $.$get$__float32ToUint32(); if (0 >= t1.length) return A.ioore(t1, 0); x_i = t1[0]; if (n === 0) return x_i >>> 16; e = x_i >>> 23 & 511; t1 = $.Half____eLut._readField$0(); if (!(e < t1.length)) return A.ioore(t1, e); e = t1[e]; if (e !== 0) { m = x_i & 8388607; return e + (m + 4095 + (m >>> 13 & 1) >>> 13); } return A.Half__convert(x_i); }, Half__convert(i) { var t, t1, s = i >>> 16 & 32768, e = (i >>> 23 & 255) - 112, m = i & 8388607; if (e <= 0) { if (e < -10) return s; m |= 8388608; t = 14 - e; return (s | B.JSInt_methods.$shr(m + (B.JSInt_methods.$shl(1, t - 1) - 1) + (B.JSInt_methods._shrReceiverPositive$1(m, t) & 1), t)) >>> 0; } else if (e === 143) if (m === 0) return s | 31744; else { m = m >>> 13; t1 = m === 0 ? 1 : 0; return s | m | t1 | 31744; } else { m = m + 4095 + (m >>> 13 & 1); if ((m & 8388608) !== 0) { ++e; m = 0; } if (e > 30) return s | 31744; return (s | e << 10 | m >>> 13) >>> 0; } }, Half__initialize() { var t1, i, e, t2, t3; if ($.Half__toFloatUint32 != null) return; t1 = new Uint32Array(65536); $.Half__toFloatUint32 = t1; $.Half__toFloatFloat32 = A.NativeFloat32List_NativeFloat32List$view(t1.buffer, 0, null); t1 = new Uint16Array(512); $.Half____eLut._value = t1; for (i = 0; i < 256; ++i) { e = (i & 255) - 112; if (e <= 0 || e >= 30) { $.Half____eLut.toString; t1[i] = 0; t2 = (i | 256) >>> 0; if (!(t2 < 512)) return A.ioore(t1, t2); t1[t2] = 0; } else { $.Half____eLut.toString; t2 = e << 10 >>> 0; t1[i] = t2; t3 = (i | 256) >>> 0; if (!(t3 < 512)) return A.ioore(t1, t3); t1[t3] = (t2 | 32768) >>> 0; } } for (t1 = $.Half__toFloatUint32, i = 0; i < 65536; ++i) { t1.toString; t1[i] = A.Half__halfToFloat(i); } }, Half__halfToFloat(y) { var t1, s = y >>> 15 & 1, e = y >>> 10 & 31, m = y & 1023; if (e === 0) if (m === 0) return s << 31 >>> 0; else { for (; (m & 1024) === 0;) { m = m << 1; --e; } ++e; m &= 4294966271; } else if (e === 31) { t1 = s << 31; if (m === 0) return (t1 | 2139095040) >>> 0; else return (t1 | m << 13 | 2139095040) >>> 0; } return (s << 31 | e + 112 << 23 | m << 13) >>> 0; }, uint64ToFloat64(d) { $.$get$__uint64().$indexSet(0, 0, d); return $.$get$__uint64ToFloat64().$index(0, 0); }, debugBits32(value) { var i, t1; if (value == null) return "null"; for (i = 32, t1 = ""; i > -1; --i) t1 += (value & B.JSInt_methods.$shl(1, i)) >>> 0 === 0 ? "0" : "1"; return t1.charCodeAt(0) == 0 ? t1 : t1; }, bakeOrientation(image) { var t1, t2, bakedImage = A.Image$from(image); if (!image.exif.data.containsKey$1(0, 274) || A._asInt(image.exif.data.$index(0, 274)) === 1) return bakedImage; bakedImage.exif = new A.ExifData(A.LinkedHashMap_LinkedHashMap$_empty(type$.int, type$.dynamic)); for (t1 = image.exif.data, t1 = A.LinkedHashMapKeyIterator$(t1, t1._modifications, A._instanceType(t1)._precomputed1); t1.moveNext$0();) { t2 = t1.__js_helper$_current; if (t2 !== 274) bakedImage.exif.data.$indexSet(0, t2, image.exif.data.$index(0, t2)); } switch (A._asInt(image.exif.data.$index(0, 274))) { case 2: return A.flipHorizontal(bakedImage); case 3: switch (2) { case 2: A.flipVertical(bakedImage); A.flipHorizontal(bakedImage); break; } return bakedImage; case 4: return A.flipHorizontal(A.copyRotate(bakedImage, 180)); case 5: return A.flipHorizontal(A.copyRotate(bakedImage, 90)); case 6: return A.copyRotate(bakedImage, 90); case 7: return A.flipHorizontal(A.copyRotate(bakedImage, -90)); case 8: return A.copyRotate(bakedImage, -90); } return bakedImage; }, copyResize(src, height, width) { var dst, dy, dx, scaleX, x, t2, t3, t4, t5, t6, y, t7, t8, t9, t10, t1 = width == null; if (t1 && height == null) throw A.wrapException(A.ImageException$("Invalid size")); src = A.bakeOrientation(src); if (height == null || height <= 0) { width.toString; height = B.JSNumber_methods.toInt$0(width * (src.height / src.width)); } if (t1 || width <= 0) { if (typeof height !== "number") return height.$mul(); width = B.JSNumber_methods.toInt$0(height * (src.width / src.height)); } t1 = src.width; if (width === t1 && height === src.height) return A.Image$from(src); dst = A.Image$(width, height, src.channels, src.exif, src.iccProfile); if (typeof height !== "number") return A.iae(height); dy = src.height / height; if (typeof width !== "number") return A.iae(width); dx = t1 / width; scaleX = new Int32Array(width); for (x = 0; x < width; ++x) { t2 = B.JSNumber_methods.toInt$0(x * dx); if (!(x < width)) return A.ioore(scaleX, x); scaleX[x] = t2; } for (t2 = src.data, t3 = t2.length, t4 = dst.data, t5 = dst.width, t6 = t4.length, y = 0; y < height; ++y) for (t7 = B.JSNumber_methods.toInt$0(y * dy) * t1, t8 = y * t5, x = 0; x < width; ++x) { t9 = t7 + scaleX[x]; if (!(t9 >= 0 && t9 < t3)) return A.ioore(t2, t9); t9 = t2[t9]; t10 = t8 + x; if (!(t10 >= 0 && t10 < t6)) return A.ioore(t4, t10); t4[t10] = t9; } return dst; }, copyRotate(src, angle) { var t1, wm1, t2, hm1, dst, t3, t4, t5, t6, t7, y, t8, x, t9, t10, t11, rad, ca, sa, w2, h2, dw2, dh2, c, nangle = B.JSInt_methods.$mod(angle, 360); if (B.JSInt_methods.$mod(nangle, 90) === 0) { t1 = src.width; wm1 = t1 - 1; t2 = src.height; hm1 = t2 - 1; switch (B.JSInt_methods._tdivFast$1(nangle, 90)) { case 1: dst = A.Image$(t2, t1, src.channels, src.exif, src.iccProfile); for (t2 = dst.height, t3 = dst.width, t4 = src.data, t5 = t4.length, t6 = dst.data, t7 = t6.length, y = 0; y < t2; ++y) for (t8 = y * t3, x = 0; x < t3; ++x) { t9 = (hm1 - x) * t1 + y; if (!(t9 >= 0 && t9 < t5)) return A.ioore(t4, t9); t9 = t4[t9]; t10 = t8 + x; if (!(t10 >= 0 && t10 < t7)) return A.ioore(t6, t10); t6[t10] = t9; } return dst; case 2: dst = A.Image$(t1, t2, src.channels, src.exif, src.iccProfile); for (t2 = dst.height, t3 = dst.width, t4 = src.data, t5 = t4.length, t6 = dst.data, t7 = t6.length, y = 0; y < t2; ++y) for (t8 = (hm1 - y) * t1, t9 = y * t3, x = 0; x < t3; ++x) { t10 = t8 + (wm1 - x); if (!(t10 >= 0 && t10 < t5)) return A.ioore(t4, t10); t10 = t4[t10]; t11 = t9 + x; if (!(t11 >= 0 && t11 < t7)) return A.ioore(t6, t11); t6[t11] = t10; } return dst; case 3: dst = A.Image$(t2, t1, src.channels, src.exif, src.iccProfile); for (t2 = dst.height, t3 = dst.width, t4 = src.data, t5 = t4.length, t6 = dst.data, t7 = t6.length, y = 0; y < t2; ++y) for (t8 = wm1 - y, t9 = y * t3, x = 0; x < t3; ++x) { t10 = x * t1 + t8; if (!(t10 >= 0 && t10 < t5)) return A.ioore(t4, t10); t10 = t4[t10]; t11 = t9 + x; if (!(t11 >= 0 && t11 < t7)) return A.ioore(t6, t11); t6[t11] = t10; } return dst; default: return A.Image$from(src); } } rad = nangle * 3.141592653589793 / 180; ca = Math.cos(rad); sa = Math.sin(rad); t1 = src.width; t2 = src.height; w2 = 0.5 * t1; h2 = 0.5 * t2; t3 = Math.abs(t1 * ca) + Math.abs(t2 * sa); dw2 = 0.5 * t3; t2 = Math.abs(t1 * sa) + Math.abs(t2 * ca); dh2 = 0.5 * t2; dst = A.Image$(B.JSNumber_methods.toInt$0(t3), B.JSNumber_methods.toInt$0(t2), B.Channels_1, src.exif, src.iccProfile); for (t1 = dst.height, t2 = dst.width, t3 = dst.data, t4 = t3.length, y = 0; y < t1; ++y) for (t5 = y - dh2, t6 = t5 * sa, t5 *= ca, t7 = y * t2, x = 0; x < t2; ++x) { t8 = x - dw2; c = src.getPixelInterpolate$3(w2 + t8 * ca + t6, h2 - t8 * sa + t5, B.Interpolation_0); t8 = t7 + x; if (!(t8 >= 0 && t8 < t4)) return A.ioore(t3, t8); t3[t8] = c; } return dst; }, flipVertical(src) { var t1, t2, t3, y, y1, y2, x, t4, t, t5, w = src.width, h = src.height, h2 = B.JSInt_methods._tdivFast$1(h, 2); for (t1 = src.data, t2 = t1.length, t3 = h - 1, y = 0; y < h2; ++y) { y1 = y * w; y2 = (t3 - y) * w; for (x = 0; x < w; ++x) { t4 = y2 + x; if (!(t4 >= 0 && t4 < t2)) return A.ioore(t1, t4); t = t1[t4]; t5 = y1 + x; if (!(t5 >= 0 && t5 < t2)) return A.ioore(t1, t5); t1[t4] = t1[t5]; t1[t5] = t; } } return src; }, flipHorizontal(src) { var t1, t2, t3, y, y1, x, t4, t, t5, w = src.width, h = src.height, w2 = B.JSInt_methods._tdivFast$1(w, 2); for (t1 = w - 1, t2 = src.data, t3 = t2.length, y = 0; y < h; ++y) { y1 = y * w; for (x = 0; x < w2; ++x) { t4 = y1 + (t1 - x); if (!(t4 >= 0 && t4 < t3)) return A.ioore(t2, t4); t = t2[t4]; t5 = y1 + x; if (!(t5 >= 0 && t5 < t3)) return A.ioore(t2, t5); t2[t4] = t2[t5]; t2[t5] = t; } } return src; }, Event_getMapFromPayload(payload) { var t1, exception; try { t1 = type$.Map_String_dynamic._as(B.C_JsonCodec.decode$1(0, payload)); return t1; } catch (exception) { return A.LinkedHashMap_LinkedHashMap$_empty(type$.String, type$.dynamic); } return A.LinkedHashMap_LinkedHashMap$_empty(type$.String, type$.dynamic); }, main() { return A.startWebWorker(); } }, J = { makeDispatchRecord(interceptor, proto, extension, indexability) { return {i: interceptor, p: proto, e: extension, x: indexability}; }, getNativeInterceptor(object) { var proto, objectProto, $constructor, interceptor, t1, record = object[init.dispatchPropertyName]; if (record == null) if ($.initNativeDispatchFlag == null) { A.initNativeDispatch(); record = object[init.dispatchPropertyName]; } if (record != null) { proto = record.p; if (false === proto) return record.i; if (true === proto) return object; objectProto = Object.getPrototypeOf(object); if (proto === objectProto) return record.i; if (record.e === objectProto) throw A.wrapException(A.UnimplementedError$("Return interceptor for " + A.S(proto(object, record)))); } $constructor = object.constructor; if ($constructor == null) interceptor = null; else { t1 = $._JS_INTEROP_INTERCEPTOR_TAG; if (t1 == null) t1 = $._JS_INTEROP_INTERCEPTOR_TAG = init.getIsolateTag("_$dart_js"); interceptor = $constructor[t1]; } if (interceptor != null) return interceptor; interceptor = A.lookupAndCacheInterceptor(object); if (interceptor != null) return interceptor; if (typeof object == "function") return B.JavaScriptFunction_methods; proto = Object.getPrototypeOf(object); if (proto == null) return B.PlainJavaScriptObject_methods; if (proto === Object.prototype) return B.PlainJavaScriptObject_methods; if (typeof $constructor == "function") { t1 = $._JS_INTEROP_INTERCEPTOR_TAG; if (t1 == null) t1 = $._JS_INTEROP_INTERCEPTOR_TAG = init.getIsolateTag("_$dart_js"); Object.defineProperty($constructor, t1, {value: B.UnknownJavaScriptObject_methods, enumerable: false, writable: true, configurable: true}); return B.UnknownJavaScriptObject_methods; } return B.UnknownJavaScriptObject_methods; }, JSArray_JSArray$fixed($length, $E) { if ($length < 0 || $length > 4294967295) throw A.wrapException(A.RangeError$range($length, 0, 4294967295, "length", null)); return J.JSArray_JSArray$markFixed(new Array($length), $E); }, JSArray_JSArray$allocateFixed($length, $E) { if ($length < 0 || $length > 4294967295) throw A.wrapException(A.RangeError$range($length, 0, 4294967295, "length", null)); return J.JSArray_JSArray$markFixed(new Array($length), $E); }, JSArray_JSArray$growable($length, $E) { if ($length < 0) throw A.wrapException(A.ArgumentError$("Length must be a non-negative integer: " + $length, null)); return A._setArrayType(new Array($length), $E._eval$1("JSArray<0>")); }, JSArray_JSArray$allocateGrowable($length, $E) { return A._setArrayType(new Array($length), $E._eval$1("JSArray<0>")); }, JSArray_JSArray$markFixed(allocation, $E) { return J.JSArray_markFixedList(A._setArrayType(allocation, $E._eval$1("JSArray<0>")), $E); }, JSArray_markFixedList(list, $T) { list.fixed$length = Array; return list; }, getInterceptor$(receiver) { if (typeof receiver == "number") { if (Math.floor(receiver) == receiver) return J.JSInt.prototype; return J.JSNumNotInt.prototype; } if (typeof receiver == "string") return J.JSString.prototype; if (receiver == null) return J.JSNull.prototype; if (typeof receiver == "boolean") return J.JSBool.prototype; if (receiver.constructor == Array) return J.JSArray.prototype; if (typeof receiver != "object") { if (typeof receiver == "function") return J.JavaScriptFunction.prototype; return receiver; } if (receiver instanceof A.Object) return receiver; return J.getNativeInterceptor(receiver); }, getInterceptor$asx(receiver) { if (typeof receiver == "string") return J.JSString.prototype; if (receiver == null) return receiver; if (receiver.constructor == Array) return J.JSArray.prototype; if (typeof receiver != "object") { if (typeof receiver == "function") return J.JavaScriptFunction.prototype; return receiver; } if (receiver instanceof A.Object) return receiver; return J.getNativeInterceptor(receiver); }, getInterceptor$ax(receiver) { if (receiver == null) return receiver; if (receiver.constructor == Array) return J.JSArray.prototype; if (typeof receiver != "object") { if (typeof receiver == "function") return J.JavaScriptFunction.prototype; return receiver; } if (receiver instanceof A.Object) return receiver; return J.getNativeInterceptor(receiver); }, getInterceptor$in(receiver) { if (typeof receiver == "number") { if (Math.floor(receiver) == receiver) return J.JSInt.prototype; return J.JSNumNotInt.prototype; } if (receiver == null) return receiver; if (!(receiver instanceof A.Object)) return J.UnknownJavaScriptObject.prototype; return receiver; }, getInterceptor$x(receiver) { if (receiver == null) return receiver; if (typeof receiver != "object") { if (typeof receiver == "function") return J.JavaScriptFunction.prototype; return receiver; } if (receiver instanceof A.Object) return receiver; return J.getNativeInterceptor(receiver); }, getInterceptor$z(receiver) { if (receiver == null) return receiver; if (!(receiver instanceof A.Object)) return J.UnknownJavaScriptObject.prototype; return receiver; }, get$ciphertext$x(receiver) { return J.getInterceptor$x(receiver).get$ciphertext(receiver); }, get$entries$x(receiver) { return J.getInterceptor$x(receiver).get$entries(receiver); }, get$ephemeral$x(receiver) { return J.getInterceptor$x(receiver).get$ephemeral(receiver); }, get$first$ax(receiver) { return J.getInterceptor$ax(receiver).get$first(receiver); }, get$hashCode$(receiver) { return J.getInterceptor$(receiver).get$hashCode(receiver); }, get$isEmpty$asx(receiver) { return J.getInterceptor$asx(receiver).get$isEmpty(receiver); }, get$iterator$ax(receiver) { return J.getInterceptor$ax(receiver).get$iterator(receiver); }, get$length$asx(receiver) { return J.getInterceptor$asx(receiver).get$length(receiver); }, get$mac$x(receiver) { return J.getInterceptor$x(receiver).get$mac(receiver); }, get$sign$in(receiver) { if (typeof receiver === "number") return receiver > 0 ? 1 : receiver < 0 ? -1 : receiver; return J.getInterceptor$in(receiver).get$sign(receiver); }, get$target$x(receiver) { return J.getInterceptor$x(receiver).get$target(receiver); }, $eq$(receiver, a0) { if (receiver == null) return a0 == null; if (typeof receiver != "object") return a0 != null && receiver === a0; return J.getInterceptor$(receiver).$eq(receiver, a0); }, $index$asx(receiver, a0) { if (typeof a0 === "number") if (receiver.constructor == Array || typeof receiver == "string" || A.isJsIndexable(receiver, receiver[init.dispatchPropertyName])) if (a0 >>> 0 === a0 && a0 < receiver.length) return receiver[a0]; return J.getInterceptor$asx(receiver).$index(receiver, a0); }, $indexSet$ax(receiver, a0, a1) { return J.getInterceptor$ax(receiver).$indexSet(receiver, a0, a1); }, add$1$ax(receiver, a0) { return J.getInterceptor$ax(receiver).add$1(receiver, a0); }, decode$2$z(receiver, a0, a1) { return J.getInterceptor$z(receiver).decode$2(receiver, a0, a1); }, elementAt$1$ax(receiver, a0) { return J.getInterceptor$ax(receiver).elementAt$1(receiver, a0); }, encrypt$1$x(receiver, a0) { return J.getInterceptor$x(receiver).encrypt$1(receiver, a0); }, export_session$1$x(receiver, a0) { return J.getInterceptor$x(receiver).export_session$1(receiver, a0); }, fillRange$3$ax(receiver, a0, a1, a2) { return J.getInterceptor$ax(receiver).fillRange$3(receiver, a0, a1, a2); }, first_known_index$0$x(receiver) { return J.getInterceptor$x(receiver).first_known_index$0(receiver); }, forEach$1$x(receiver, a0) { return J.getInterceptor$x(receiver).forEach$1(receiver, a0); }, free$0$x(receiver) { return J.getInterceptor$x(receiver).free$0(receiver); }, map$1$1$ax(receiver, a0, $T1) { return J.getInterceptor$ax(receiver).map$1$1(receiver, a0, $T1); }, noSuchMethod$1$(receiver, a0) { return J.getInterceptor$(receiver).noSuchMethod$1(receiver, a0); }, set_recipient_key$1$x(receiver, a0) { return J.getInterceptor$x(receiver).set_recipient_key$1(receiver, a0); }, skip$1$ax(receiver, a0) { return J.getInterceptor$ax(receiver).skip$1(receiver, a0); }, sublist$2$ax(receiver, a0, a1) { return J.getInterceptor$ax(receiver).sublist$2(receiver, a0, a1); }, toString$0$(receiver) { return J.getInterceptor$(receiver).toString$0(receiver); }, unpickle$2$x(receiver, a0, a1) { return J.getInterceptor$x(receiver).unpickle$2(receiver, a0, a1); }, Interceptor: function Interceptor() { }, JSBool: function JSBool() { }, JSNull: function JSNull() { }, JavaScriptObject: function JavaScriptObject() { }, LegacyJavaScriptObject: function LegacyJavaScriptObject() { }, PlainJavaScriptObject: function PlainJavaScriptObject() { }, UnknownJavaScriptObject: function UnknownJavaScriptObject() { }, JavaScriptFunction: function JavaScriptFunction() { }, JSArray: function JSArray(t0) { this.$ti = t0; }, JSUnmodifiableArray: function JSUnmodifiableArray(t0) { this.$ti = t0; }, ArrayIterator: function ArrayIterator(t0, t1, t2) { var _ = this; _._iterable = t0; _.__interceptors$_length = t1; _._index = 0; _.__interceptors$_current = null; _.$ti = t2; }, JSNumber: function JSNumber() { }, JSInt: function JSInt() { }, JSNumNotInt: function JSNumNotInt() { }, JSString: function JSString() { } }, B = {}; var holders = [A, J, B]; var $ = {}; A.JS_CONST.prototype = {}; J.Interceptor.prototype = { $eq(receiver, other) { return receiver === other; }, get$hashCode(receiver) { return A.Primitives_objectHashCode(receiver); }, toString$0(receiver) { return "Instance of '" + A.Primitives_objectTypeName(receiver) + "'"; }, noSuchMethod$1(receiver, invocation) { type$.Invocation._as(invocation); throw A.wrapException(A.NoSuchMethodError$(receiver, invocation.get$memberName(), invocation.get$positionalArguments(), invocation.get$namedArguments())); } }; J.JSBool.prototype = { toString$0(receiver) { return String(receiver); }, get$hashCode(receiver) { return receiver ? 519018 : 218159; }, $isbool: 1 }; J.JSNull.prototype = { $eq(receiver, other) { return null == other; }, toString$0(receiver) { return "null"; }, get$hashCode(receiver) { return 0; }, $isNull: 1 }; J.JavaScriptObject.prototype = {}; J.LegacyJavaScriptObject.prototype = { get$hashCode(receiver) { return 0; }, toString$0(receiver) { return String(receiver); }, $isInboundGroupSession: 1, get$length(obj) { return obj.length; }, set$length(obj, v) { return obj.length = v; }, free$0(receiver) { return receiver.free(); }, unpickle$2(receiver, p0, p1) { return receiver.unpickle(p0, p1); }, encrypt$1(receiver, p0) { return receiver.encrypt(p0); }, first_known_index$0(receiver) { return receiver.first_known_index(); }, export_session$1(receiver, p0) { return receiver.export_session(p0); }, get$ciphertext(obj) { return obj.ciphertext; }, get$mac(obj) { return obj.mac; }, get$ephemeral(obj) { return obj.ephemeral; }, set_recipient_key$1(receiver, p0) { return receiver.set_recipient_key(p0); } }; J.PlainJavaScriptObject.prototype = {}; J.UnknownJavaScriptObject.prototype = {}; J.JavaScriptFunction.prototype = { toString$0(receiver) { var dartClosure = receiver[$.$get$DART_CLOSURE_PROPERTY_NAME()]; if (dartClosure == null) return this.super$LegacyJavaScriptObject$toString(receiver); return "JavaScript function for " + A.S(J.toString$0$(dartClosure)); }, $isFunction: 1 }; J.JSArray.prototype = { add$1(receiver, value) { A._arrayInstanceType(receiver)._precomputed1._as(value); if (!!receiver.fixed$length) A.throwExpression(A.UnsupportedError$("add")); receiver.push(value); }, addAll$1(receiver, collection) { var t1; A._arrayInstanceType(receiver)._eval$1("Iterable<1>")._as(collection); if (!!receiver.fixed$length) A.throwExpression(A.UnsupportedError$("addAll")); if (Array.isArray(collection)) { this._addAllFromArray$1(receiver, collection); return; } for (t1 = J.get$iterator$ax(collection); t1.moveNext$0();) receiver.push(t1.get$current(t1)); }, _addAllFromArray$1(receiver, array) { var len, i; type$.JSArray_dynamic._as(array); len = array.length; if (len === 0) return; if (receiver === array) throw A.wrapException(A.ConcurrentModificationError$(receiver)); for (i = 0; i < len; ++i) receiver.push(array[i]); }, map$1$1(receiver, f, $T) { var t1 = A._arrayInstanceType(receiver); return new A.MappedListIterable(receiver, t1._bind$1($T)._eval$1("1(2)")._as(f), t1._eval$1("@<1>")._bind$1($T)._eval$1("MappedListIterable<1,2>")); }, join$1(receiver, separator) { var i, list = A.List_List$filled(receiver.length, "", false, type$.String); for (i = 0; i < receiver.length; ++i) this.$indexSet(list, i, A.S(receiver[i])); return list.join(separator); }, skip$1(receiver, n) { return A.SubListIterable$(receiver, n, null, A._arrayInstanceType(receiver)._precomputed1); }, elementAt$1(receiver, index) { if (!(index >= 0 && index < receiver.length)) return A.ioore(receiver, index); return receiver[index]; }, sublist$2(receiver, start, end) { if (start < 0 || start > receiver.length) throw A.wrapException(A.RangeError$range(start, 0, receiver.length, "start", null)); if (end < start || end > receiver.length) throw A.wrapException(A.RangeError$range(end, start, receiver.length, "end", null)); if (start === end) return A._setArrayType([], A._arrayInstanceType(receiver)); return A._setArrayType(receiver.slice(start, end), A._arrayInstanceType(receiver)); }, get$first(receiver) { if (receiver.length > 0) return receiver[0]; throw A.wrapException(A.IterableElementError_noElement()); }, get$last(receiver) { var t1 = receiver.length; if (t1 > 0) return receiver[t1 - 1]; throw A.wrapException(A.IterableElementError_noElement()); }, setRange$4(receiver, start, end, iterable, skipCount) { var $length, otherList, otherStart, t1, i; A._arrayInstanceType(receiver)._eval$1("Iterable<1>")._as(iterable); if (!!receiver.immutable$list) A.throwExpression(A.UnsupportedError$("setRange")); A.RangeError_checkValidRange(start, end, receiver.length); $length = end - start; if ($length === 0) return; A.RangeError_checkNotNegative(skipCount, "skipCount"); if (type$.List_dynamic._is(iterable)) { otherList = iterable; otherStart = skipCount; } else { otherList = J.skip$1$ax(iterable, skipCount).toList$1$growable(0, false); otherStart = 0; } t1 = J.getInterceptor$asx(otherList); if (otherStart + $length > t1.get$length(otherList)) throw A.wrapException(A.IterableElementError_tooFew()); if (otherStart < start) for (i = $length - 1; i >= 0; --i) receiver[start + i] = t1.$index(otherList, otherStart + i); else for (i = 0; i < $length; ++i) receiver[start + i] = t1.$index(otherList, otherStart + i); }, fillRange$3(receiver, start, end, fillValue) { var i; A._arrayInstanceType(receiver)._eval$1("1?")._as(fillValue); if (!!receiver.immutable$list) A.throwExpression(A.UnsupportedError$("fill range")); A.RangeError_checkValidRange(start, end, receiver.length); for (i = start; i < end; ++i) receiver[i] = fillValue; }, contains$1(receiver, other) { var i; for (i = 0; i < receiver.length; ++i) if (J.$eq$(receiver[i], other)) return true; return false; }, get$isEmpty(receiver) { return receiver.length === 0; }, get$isNotEmpty(receiver) { return receiver.length !== 0; }, toString$0(receiver) { return A.IterableBase_iterableToFullString(receiver, "[", "]"); }, get$iterator(receiver) { return new J.ArrayIterator(receiver, receiver.length, A._arrayInstanceType(receiver)._eval$1("ArrayIterator<1>")); }, get$hashCode(receiver) { return A.Primitives_objectHashCode(receiver); }, get$length(receiver) { return receiver.length; }, set$length(receiver, newLength) { if (!!receiver.fixed$length) A.throwExpression(A.UnsupportedError$("set length")); if (newLength < 0) throw A.wrapException(A.RangeError$range(newLength, 0, null, "newLength", null)); if (newLength > receiver.length) A._arrayInstanceType(receiver)._precomputed1._as(null); receiver.length = newLength; }, $index(receiver, index) { A._asInt(index); if (!(index >= 0 && index < receiver.length)) throw A.wrapException(A.diagnoseIndexError(receiver, index)); return receiver[index]; }, $indexSet(receiver, index, value) { A._asInt(index); A._arrayInstanceType(receiver)._precomputed1._as(value); if (!!receiver.immutable$list) A.throwExpression(A.UnsupportedError$("indexed set")); if (!(index >= 0 && index < receiver.length)) throw A.wrapException(A.diagnoseIndexError(receiver, index)); receiver[index] = value; }, $isEfficientLengthIterable: 1, $isIterable: 1, $isList: 1 }; J.JSUnmodifiableArray.prototype = {}; J.ArrayIterator.prototype = { get$current(_) { var t1 = this.__interceptors$_current; return t1 == null ? this.$ti._precomputed1._as(t1) : t1; }, moveNext$0() { var t2, _this = this, t1 = _this._iterable, $length = t1.length; if (_this.__interceptors$_length !== $length) throw A.wrapException(A.throwConcurrentModificationError(t1)); t2 = _this._index; if (t2 >= $length) { _this.set$__interceptors$_current(null); return false; } _this.set$__interceptors$_current(t1[t2]); ++_this._index; return true; }, set$__interceptors$_current(_current) { this.__interceptors$_current = this.$ti._eval$1("1?")._as(_current); }, $isIterator: 1 }; J.JSNumber.prototype = { compareTo$1(receiver, b) { var bIsNegative; if (receiver < b) return -1; else if (receiver > b) return 1; else if (receiver === b) { if (receiver === 0) { bIsNegative = B.JSInt_methods.get$isNegative(b); if (this.get$isNegative(receiver) === bIsNegative) return 0; if (this.get$isNegative(receiver)) return -1; return 1; } return 0; } else if (isNaN(receiver)) { if (isNaN(b)) return 0; return 1; } else return -1; }, get$isNegative(receiver) { return receiver === 0 ? 1 / receiver < 0 : receiver < 0; }, get$sign(receiver) { var t1; if (receiver > 0) t1 = 1; else t1 = receiver < 0 ? -1 : receiver; return t1; }, toInt$0(receiver) { var t1; if (receiver >= -2147483648 && receiver <= 2147483647) return receiver | 0; if (isFinite(receiver)) { t1 = receiver < 0 ? Math.ceil(receiver) : Math.floor(receiver); return t1 + 0; } throw A.wrapException(A.UnsupportedError$("" + receiver + ".toInt()")); }, ceil$0(receiver) { var truncated, d; if (receiver >= 0) { if (receiver <= 2147483647) { truncated = receiver | 0; return receiver === truncated ? truncated : truncated + 1; } } else if (receiver >= -2147483648) return receiver | 0; d = Math.ceil(receiver); if (isFinite(d)) return d; throw A.wrapException(A.UnsupportedError$("" + receiver + ".ceil()")); }, floor$0(receiver) { var truncated, d; if (receiver >= 0) { if (receiver <= 2147483647) return receiver | 0; } else if (receiver >= -2147483648) { truncated = receiver | 0; return receiver === truncated ? truncated : truncated - 1; } d = Math.floor(receiver); if (isFinite(d)) return d; throw A.wrapException(A.UnsupportedError$("" + receiver + ".floor()")); }, round$0(receiver) { if (receiver > 0) { if (receiver !== 1 / 0) return Math.round(receiver); } else if (receiver > -1 / 0) return 0 - Math.round(0 - receiver); throw A.wrapException(A.UnsupportedError$("" + receiver + ".round()")); }, clamp$2(receiver, lowerLimit, upperLimit) { if (B.JSInt_methods.compareTo$1(lowerLimit, upperLimit) > 0) throw A.wrapException(A.argumentErrorValue(lowerLimit)); if (this.compareTo$1(receiver, lowerLimit) < 0) return lowerLimit; if (this.compareTo$1(receiver, upperLimit) > 0) return upperLimit; return receiver; }, toRadixString$1(receiver, radix) { var result, match, t1, exponent; if (radix < 2 || radix > 36) throw A.wrapException(A.RangeError$range(radix, 2, 36, "radix", null)); result = receiver.toString(radix); if (B.JSString_methods.codeUnitAt$1(result, result.length - 1) !== 41) return result; match = /^([\da-z]+)(?:\.([\da-z]+))?\(e\+(\d+)\)$/.exec(result); if (match == null) A.throwExpression(A.UnsupportedError$("Unexpected toString result: " + result)); t1 = match.length; if (1 >= t1) return A.ioore(match, 1); result = match[1]; if (3 >= t1) return A.ioore(match, 3); exponent = +match[3]; t1 = match[2]; if (t1 != null) { result += t1; exponent -= t1.length; } return result + B.JSString_methods.$mul("0", exponent); }, toString$0(receiver) { if (receiver === 0 && 1 / receiver < 0) return "-0.0"; else return "" + receiver; }, get$hashCode(receiver) { var absolute, floorLog2, factor, scaled, intValue = receiver | 0; if (receiver === intValue) return intValue & 536870911; absolute = Math.abs(receiver); floorLog2 = Math.log(absolute) / 0.6931471805599453 | 0; factor = Math.pow(2, floorLog2); scaled = absolute < 1 ? absolute / factor : factor / absolute; return ((scaled * 9007199254740992 | 0) + (scaled * 3542243181176521 | 0)) * 599197 + floorLog2 * 1259 & 536870911; }, $add(receiver, other) { A._asNum(other); return receiver + other; }, $mod(receiver, other) { var result = receiver % other; if (result === 0) return 0; if (result > 0) return result; if (other < 0) return result - other; else return result + other; }, $tdiv(receiver, other) { A._asNum(other); if ((receiver | 0) === receiver) if (other >= 1 || other < -1) return receiver / other | 0; return this._tdivSlow$1(receiver, other); }, _tdivFast$1(receiver, other) { return (receiver | 0) === receiver ? receiver / other | 0 : this._tdivSlow$1(receiver, other); }, _tdivSlow$1(receiver, other) { var quotient = receiver / other; if (quotient >= -2147483648 && quotient <= 2147483647) return quotient | 0; if (quotient > 0) { if (quotient !== 1 / 0) return Math.floor(quotient); } else if (quotient > -1 / 0) return Math.ceil(quotient); throw A.wrapException(A.UnsupportedError$("Result of truncating division is " + A.S(quotient) + ": " + A.S(receiver) + " ~/ " + other)); }, $shl(receiver, other) { if (other < 0) throw A.wrapException(A.argumentErrorValue(other)); return other > 31 ? 0 : receiver << other >>> 0; }, _shlPositive$1(receiver, other) { return other > 31 ? 0 : receiver << other >>> 0; }, $shr(receiver, other) { var t1; if (other < 0) throw A.wrapException(A.argumentErrorValue(other)); if (receiver > 0) t1 = this._shrBothPositive$1(receiver, other); else { t1 = other > 31 ? 31 : other; t1 = receiver >> t1 >>> 0; } return t1; }, _shrOtherPositive$1(receiver, other) { var t1; if (receiver > 0) t1 = this._shrBothPositive$1(receiver, other); else { t1 = other > 31 ? 31 : other; t1 = receiver >> t1 >>> 0; } return t1; }, _shrReceiverPositive$1(receiver, other) { if (0 > other) throw A.wrapException(A.argumentErrorValue(other)); return this._shrBothPositive$1(receiver, other); }, _shrBothPositive$1(receiver, other) { return other > 31 ? 0 : receiver >>> other; }, $isdouble: 1, $isnum: 1 }; J.JSInt.prototype = { get$sign(receiver) { var t1; if (receiver > 0) t1 = 1; else t1 = receiver < 0 ? -1 : receiver; return t1; }, toSigned$1(receiver, width) { var signMask = this.$shl(1, width - 1); return ((receiver & signMask - 1) >>> 0) - ((receiver & signMask) >>> 0); }, $isint: 1 }; J.JSNumNotInt.prototype = {}; J.JSString.prototype = { codeUnitAt$1(receiver, index) { if (index < 0) throw A.wrapException(A.diagnoseIndexError(receiver, index)); if (index >= receiver.length) A.throwExpression(A.diagnoseIndexError(receiver, index)); return receiver.charCodeAt(index); }, _codeUnitAt$1(receiver, index) { if (index >= receiver.length) throw A.wrapException(A.diagnoseIndexError(receiver, index)); return receiver.charCodeAt(index); }, $add(receiver, other) { A._asString(other); return receiver + other; }, endsWith$1(receiver, other) { var otherLength = other.length, t1 = receiver.length; if (otherLength > t1) return false; return other === this.substring$1(receiver, t1 - otherLength); }, substring$2(receiver, start, end) { return receiver.substring(start, A.RangeError_checkValidRange(start, end, receiver.length)); }, substring$1($receiver, start) { return this.substring$2($receiver, start, null); }, $mul(receiver, times) { var s, result; if (0 >= times) return ""; if (times === 1 || receiver.length === 0) return receiver; if (times !== times >>> 0) throw A.wrapException(B.C_OutOfMemoryError); for (s = receiver, result = ""; true;) { if ((times & 1) === 1) result = s + result; times = times >>> 1; if (times === 0) break; s += s; } return result; }, toString$0(receiver) { return receiver; }, get$hashCode(receiver) { var t1, hash, i; for (t1 = receiver.length, hash = 0, i = 0; i < t1; ++i) { hash = hash + receiver.charCodeAt(i) & 536870911; hash = hash + ((hash & 524287) << 10) & 536870911; hash ^= hash >> 6; } hash = hash + ((hash & 67108863) << 3) & 536870911; hash ^= hash >> 11; return hash + ((hash & 16383) << 15) & 536870911; }, get$length(receiver) { return receiver.length; }, $index(receiver, index) { A._asInt(index); if (!(index.$ge(0, 0) && index.$lt(0, receiver.length))) throw A.wrapException(A.diagnoseIndexError(receiver, index)); return receiver[index]; }, $isString: 1 }; A.LateError.prototype = { toString$0(_) { return "LateInitializationError: " + this._message; } }; A.CodeUnits.prototype = { get$length(_) { return this._string.length; }, $index(_, i) { return B.JSString_methods.codeUnitAt$1(this._string, A._asInt(i)); } }; A.SentinelValue.prototype = {}; A.EfficientLengthIterable.prototype = {}; A.ListIterable.prototype = { get$iterator(_) { var _this = this; return new A.ListIterator(_this, _this.get$length(_this), A._instanceType(_this)._eval$1("ListIterator")); }, get$isEmpty(_) { return this.get$length(this) === 0; }, get$first(_) { if (this.get$length(this) === 0) throw A.wrapException(A.IterableElementError_noElement()); return this.elementAt$1(0, 0); }, map$1$1(_, toElement, $T) { var t1 = A._instanceType(this); return new A.MappedListIterable(this, t1._bind$1($T)._eval$1("1(ListIterable.E)")._as(toElement), t1._eval$1("@")._bind$1($T)._eval$1("MappedListIterable<1,2>")); }, reduce$1(_, combine) { var $length, value, i, _this = this; A._instanceType(_this)._eval$1("ListIterable.E(ListIterable.E,ListIterable.E)")._as(combine); $length = _this.get$length(_this); if ($length === 0) throw A.wrapException(A.IterableElementError_noElement()); value = _this.elementAt$1(0, 0); for (i = 1; i < $length; ++i) { value = combine.call$2(value, _this.elementAt$1(0, i)); if ($length !== _this.get$length(_this)) throw A.wrapException(A.ConcurrentModificationError$(_this)); } return value; }, toList$1$growable(_, growable) { return A.List_List$of(this, true, A._instanceType(this)._eval$1("ListIterable.E")); }, toList$0($receiver) { return this.toList$1$growable($receiver, true); } }; A.SubListIterable.prototype = { get$_endIndex() { var $length = J.get$length$asx(this.__internal$_iterable), endOrLength = this._endOrLength; if (endOrLength == null || endOrLength > $length) return $length; return endOrLength; }, get$_startIndex() { var $length = J.get$length$asx(this.__internal$_iterable), t1 = this._start; if (t1 > $length) return $length; return t1; }, get$length(_) { var endOrLength, $length = J.get$length$asx(this.__internal$_iterable), t1 = this._start; if (t1 >= $length) return 0; endOrLength = this._endOrLength; if (endOrLength == null || endOrLength >= $length) return $length - t1; if (typeof endOrLength !== "number") return endOrLength.$sub(); return endOrLength - t1; }, elementAt$1(_, index) { var _this = this, realIndex = _this.get$_startIndex() + index; if (index < 0 || realIndex >= _this.get$_endIndex()) throw A.wrapException(A.IndexError$(index, _this, "index", null, null)); return J.elementAt$1$ax(_this.__internal$_iterable, realIndex); }, toList$1$growable(_, growable) { var $length, result, i, _this = this, start = _this._start, t1 = _this.__internal$_iterable, t2 = J.getInterceptor$asx(t1), end = t2.get$length(t1), endOrLength = _this._endOrLength; if (endOrLength != null && endOrLength < end) end = endOrLength; $length = end - start; if ($length <= 0) { t1 = _this.$ti._precomputed1; return growable ? J.JSArray_JSArray$growable(0, t1) : J.JSArray_JSArray$fixed(0, t1); } result = A.List_List$filled($length, t2.elementAt$1(t1, start), growable, _this.$ti._precomputed1); for (i = 1; i < $length; ++i) { B.JSArray_methods.$indexSet(result, i, t2.elementAt$1(t1, start + i)); if (t2.get$length(t1) < end) throw A.wrapException(A.ConcurrentModificationError$(_this)); } return result; }, toList$0($receiver) { return this.toList$1$growable($receiver, true); } }; A.ListIterator.prototype = { get$current(_) { var t1 = this.__internal$_current; return t1 == null ? this.$ti._precomputed1._as(t1) : t1; }, moveNext$0() { var t3, _this = this, t1 = _this.__internal$_iterable, t2 = J.getInterceptor$asx(t1), $length = t2.get$length(t1); if (_this.__internal$_length !== $length) throw A.wrapException(A.ConcurrentModificationError$(t1)); t3 = _this.__internal$_index; if (t3 >= $length) { _this.set$__internal$_current(null); return false; } _this.set$__internal$_current(t2.elementAt$1(t1, t3)); ++_this.__internal$_index; return true; }, set$__internal$_current(_current) { this.__internal$_current = this.$ti._eval$1("1?")._as(_current); }, $isIterator: 1 }; A.MappedIterable.prototype = { get$iterator(_) { var t1 = A._instanceType(this); return new A.MappedIterator(J.get$iterator$ax(this.__internal$_iterable), this._f, t1._eval$1("@<1>")._bind$1(t1._rest[1])._eval$1("MappedIterator<1,2>")); }, get$length(_) { return J.get$length$asx(this.__internal$_iterable); }, get$isEmpty(_) { return J.get$isEmpty$asx(this.__internal$_iterable); }, get$first(_) { return this._f.call$1(J.get$first$ax(this.__internal$_iterable)); } }; A.EfficientLengthMappedIterable.prototype = {$isEfficientLengthIterable: 1}; A.MappedIterator.prototype = { moveNext$0() { var _this = this, t1 = _this._iterator; if (t1.moveNext$0()) { _this.set$__internal$_current(_this._f.call$1(t1.get$current(t1))); return true; } _this.set$__internal$_current(null); return false; }, get$current(_) { var t1 = this.__internal$_current; return t1 == null ? this.$ti._rest[1]._as(t1) : t1; }, set$__internal$_current(_current) { this.__internal$_current = this.$ti._eval$1("2?")._as(_current); } }; A.MappedListIterable.prototype = { get$length(_) { return J.get$length$asx(this._source); }, elementAt$1(_, index) { return this._f.call$1(J.elementAt$1$ax(this._source, index)); } }; A.EmptyIterable.prototype = { get$iterator(_) { return B.C_EmptyIterator; }, get$isEmpty(_) { return true; }, get$length(_) { return 0; }, get$first(_) { throw A.wrapException(A.IterableElementError_noElement()); }, map$1$1(_, toElement, $T) { this.$ti._bind$1($T)._eval$1("1(2)")._as(toElement); return new A.EmptyIterable($T._eval$1("EmptyIterable<0>")); }, toList$1$growable(_, growable) { var t1 = J.JSArray_JSArray$growable(0, this.$ti._precomputed1); return t1; }, toList$0($receiver) { return this.toList$1$growable($receiver, true); } }; A.EmptyIterator.prototype = { moveNext$0() { return false; }, get$current(_) { throw A.wrapException(A.IterableElementError_noElement()); }, $isIterator: 1 }; A.WhereTypeIterable.prototype = { get$iterator(_) { return new A.WhereTypeIterator(J.get$iterator$ax(this._source), this.$ti._eval$1("WhereTypeIterator<1>")); } }; A.WhereTypeIterator.prototype = { moveNext$0() { var t1, t2; for (t1 = this._source, t2 = this.$ti._precomputed1; t1.moveNext$0();) if (t2._is(t1.get$current(t1))) return true; return false; }, get$current(_) { var t1 = this._source; return this.$ti._precomputed1._as(t1.get$current(t1)); }, $isIterator: 1 }; A.FixedLengthListMixin.prototype = {}; A.UnmodifiableListMixin.prototype = { $indexSet(_, index, value) { A._asInt(index); A._instanceType(this)._eval$1("UnmodifiableListMixin.E")._as(value); throw A.wrapException(A.UnsupportedError$("Cannot modify an unmodifiable list")); } }; A.UnmodifiableListBase.prototype = {}; A.Symbol.prototype = { get$hashCode(_) { var hash = this._hashCode; if (hash != null) return hash; hash = 664597 * J.get$hashCode$(this._name) & 536870911; this._hashCode = hash; return hash; }, toString$0(_) { return 'Symbol("' + A.S(this._name) + '")'; }, $eq(_, other) { if (other == null) return false; return other instanceof A.Symbol && this._name == other._name; }, $isSymbol0: 1 }; A.ConstantMapView.prototype = {}; A.ConstantMap.prototype = { get$isEmpty(_) { return this.get$length(this) === 0; }, toString$0(_) { return A.MapBase_mapToString(this); }, get$entries(_) { return this.entries$body$ConstantMap(0, A._instanceType(this)._eval$1("MapEntry<1,2>")); }, entries$body$ConstantMap($async$_, $async$type) { var $async$self = this; return A._makeSyncStarIterable(function() { var _ = $async$_; var $async$goto = 0, $async$handler = 1, $async$currentError, t1, t2, t3, key, t4; return function $async$get$entries($async$errorCode, $async$result) { if ($async$errorCode === 1) { $async$currentError = $async$result; $async$goto = $async$handler; } while (true) switch ($async$goto) { case 0: // Function start t1 = $async$self.get$keys($async$self), t1 = t1.get$iterator(t1), t2 = A._instanceType($async$self), t3 = t2._rest[1], t2 = t2._eval$1("@<1>")._bind$1(t3)._eval$1("MapEntry<1,2>"); case 2: // for condition if (!t1.moveNext$0()) { // goto after for $async$goto = 3; break; } key = t1.get$current(t1); t4 = $async$self.$index(0, key); $async$goto = 4; return new A.MapEntry(key, t4 == null ? t3._as(t4) : t4, t2); case 4: // after yield // goto for condition $async$goto = 2; break; case 3: // after for // implicit return return A._IterationMarker_endOfIteration(); case 1: // rethrow return A._IterationMarker_uncaughtError($async$currentError); } }; }, $async$type); }, $isMap: 1 }; A.ConstantStringMap.prototype = { get$length(_) { return this._length; }, containsKey$1(_, key) { if (typeof key != "string") return false; if ("__proto__" === key) return false; return this._jsObject.hasOwnProperty(key); }, $index(_, key) { if (!this.containsKey$1(0, key)) return null; return this._jsObject[A._asString(key)]; }, forEach$1(_, f) { var keys, t2, t3, i, t4, t1 = this.$ti; t1._eval$1("~(1,2)")._as(f); keys = this._keys; for (t2 = keys.length, t3 = this._jsObject, t1 = t1._rest[1], i = 0; i < t2; ++i) { t4 = A._asString(keys[i]); f.call$2(t4, t1._as(t3[t4])); } }, get$keys(_) { return new A._ConstantMapKeyIterable(this, this.$ti._eval$1("_ConstantMapKeyIterable<1>")); } }; A._ConstantMapKeyIterable.prototype = { get$iterator(_) { var t1 = this._map._keys; return new J.ArrayIterator(t1, t1.length, A._arrayInstanceType(t1)._eval$1("ArrayIterator<1>")); }, get$length(_) { return this._map._keys.length; } }; A.GeneralConstantMap.prototype = { _getMap$0() { var t1, t2, t3, _this = this, backingMap = _this.$map; if (backingMap == null) { t1 = _this.$ti; t2 = t1._precomputed1; t3 = A.GeneralConstantMap__typeTest(t2); backingMap = A.LinkedHashMap_LinkedHashMap(A._js_helper_GeneralConstantMap__constantMapHashCode$closure(), t3, t2, t1._rest[1]); A.fillLiteralMap(_this._jsData, backingMap); _this.$map = backingMap; } return backingMap; }, containsKey$1(_, key) { return this._getMap$0().containsKey$1(0, key); }, $index(_, key) { return this._getMap$0().$index(0, key); }, forEach$1(_, f) { this.$ti._eval$1("~(1,2)")._as(f); this._getMap$0().forEach$1(0, f); }, get$keys(_) { var t1 = this._getMap$0(); return new A.LinkedHashMapKeyIterable(t1, A._instanceType(t1)._eval$1("LinkedHashMapKeyIterable<1>")); }, get$length(_) { return this._getMap$0()._length; } }; A.GeneralConstantMap__typeTest_closure.prototype = { call$1(o) { return this.T._is(o); }, $signature: 19 }; A.Instantiation.prototype = { $eq(_, other) { if (other == null) return false; return other instanceof A.Instantiation && this._genericClosure.$eq(0, other._genericClosure) && A.getRuntimeType(this) === A.getRuntimeType(other); }, get$hashCode(_) { return A.Object_hash(this._genericClosure, A.getRuntimeType(this), B.C_SentinelValue, B.C_SentinelValue); }, toString$0(_) { var t1 = B.JSArray_methods.join$1([A.createRuntimeType(this.$ti._precomputed1)], ", "); return this._genericClosure.toString$0(0) + " with " + ("<" + t1 + ">"); } }; A.Instantiation1.prototype = { call$2(a0, a1) { return this._genericClosure.call$1$2(a0, a1, this.$ti._rest[0]); }, $signature() { return A.instantiatedGenericFunctionType(A.closureFunctionType(this._genericClosure), this.$ti); } }; A.JSInvocationMirror.prototype = { get$memberName() { var t1 = this._memberName; return t1; }, get$positionalArguments() { var t1, argumentCount, list, index, _this = this; if (_this.__js_helper$_kind === 1) return B.List_empty; t1 = _this._arguments; argumentCount = t1.length - _this._namedArgumentNames.length - _this._typeArgumentCount; if (argumentCount === 0) return B.List_empty; list = []; for (index = 0; index < argumentCount; ++index) { if (!(index < t1.length)) return A.ioore(t1, index); list.push(t1[index]); } list.fixed$length = Array; list.immutable$list = Array; return list; }, get$namedArguments() { var t1, namedArgumentCount, t2, namedArgumentsStartIndex, map, i, t3, t4, _this = this; if (_this.__js_helper$_kind !== 0) return B.Map_empty; t1 = _this._namedArgumentNames; namedArgumentCount = t1.length; t2 = _this._arguments; namedArgumentsStartIndex = t2.length - namedArgumentCount - _this._typeArgumentCount; if (namedArgumentCount === 0) return B.Map_empty; map = new A.JsLinkedHashMap(type$.JsLinkedHashMap_Symbol_dynamic); for (i = 0; i < namedArgumentCount; ++i) { if (!(i < t1.length)) return A.ioore(t1, i); t3 = t1[i]; t4 = namedArgumentsStartIndex + i; if (!(t4 >= 0 && t4 < t2.length)) return A.ioore(t2, t4); map.$indexSet(0, new A.Symbol(t3), t2[t4]); } return new A.ConstantMapView(map, type$.ConstantMapView_Symbol_dynamic); }, $isInvocation: 1 }; A.Primitives_functionNoSuchMethod_closure.prototype = { call$2($name, argument) { var t1; A._asString($name); t1 = this._box_0; t1.names = t1.names + "$" + $name; B.JSArray_methods.add$1(this.namedArgumentList, $name); B.JSArray_methods.add$1(this.$arguments, argument); ++t1.argumentCount; }, $signature: 3 }; A.TypeErrorDecoder.prototype = { matchTypeError$1(message) { var result, t1, _this = this, match = new RegExp(_this._pattern).exec(message); if (match == null) return null; result = Object.create(null); t1 = _this._arguments; if (t1 !== -1) result.arguments = match[t1 + 1]; t1 = _this._argumentsExpr; if (t1 !== -1) result.argumentsExpr = match[t1 + 1]; t1 = _this._expr; if (t1 !== -1) result.expr = match[t1 + 1]; t1 = _this._method; if (t1 !== -1) result.method = match[t1 + 1]; t1 = _this._receiver; if (t1 !== -1) result.receiver = match[t1 + 1]; return result; } }; A.NullError.prototype = { toString$0(_) { var t1 = this._method; if (t1 == null) return "NoSuchMethodError: " + this.__js_helper$_message; return "NoSuchMethodError: method not found: '" + t1 + "' on null"; } }; A.JsNoSuchMethodError.prototype = { toString$0(_) { var t2, _this = this, _s38_ = "NoSuchMethodError: method not found: '", t1 = _this._method; if (t1 == null) return "NoSuchMethodError: " + _this.__js_helper$_message; t2 = _this._receiver; if (t2 == null) return _s38_ + t1 + "' (" + _this.__js_helper$_message + ")"; return _s38_ + t1 + "' on '" + t2 + "' (" + _this.__js_helper$_message + ")"; } }; A.UnknownJsTypeError.prototype = { toString$0(_) { var t1 = this.__js_helper$_message; return t1.length === 0 ? "Error" : "Error: " + t1; } }; A.NullThrownFromJavaScriptException.prototype = { toString$0(_) { return "Throw of null ('" + (this._irritant === null ? "null" : "undefined") + "' from JavaScript)"; } }; A.ExceptionAndStackTrace.prototype = {}; A._StackTrace.prototype = { toString$0(_) { var trace, t1 = this._trace; if (t1 != null) return t1; t1 = this._exception; trace = t1 !== null && typeof t1 === "object" ? t1.stack : null; return this._trace = trace == null ? "" : trace; }, $isStackTrace: 1 }; A.Closure.prototype = { toString$0(_) { var $constructor = this.constructor, $name = $constructor == null ? null : $constructor.name; return "Closure '" + A.unminifyOrTag($name == null ? "unknown" : $name) + "'"; }, $isFunction: 1, get$$call() { return this; }, "call*": "call$1", $requiredArgCount: 1, $defaultValues: null }; A.Closure0Args.prototype = {"call*": "call$0", $requiredArgCount: 0}; A.Closure2Args.prototype = {"call*": "call$2", $requiredArgCount: 2}; A.TearOffClosure.prototype = {}; A.StaticClosure.prototype = { toString$0(_) { var $name = this.$static_name; if ($name == null) return "Closure of unknown static method"; return "Closure '" + A.unminifyOrTag($name) + "'"; } }; A.BoundClosure.prototype = { $eq(_, other) { if (other == null) return false; if (this === other) return true; if (!(other instanceof A.BoundClosure)) return false; return this.$_target === other.$_target && this._receiver === other._receiver; }, get$hashCode(_) { return (A.objectHashCode(this._receiver) ^ A.Primitives_objectHashCode(this.$_target)) >>> 0; }, toString$0(_) { return "Closure '" + this.$_name + "' of " + ("Instance of '" + A.Primitives_objectTypeName(this._receiver) + "'"); } }; A.RuntimeError.prototype = { toString$0(_) { return "RuntimeError: " + this.message; } }; A._AssertionError.prototype = { toString$0(_) { return "Assertion failed: " + A.Error_safeToString(this.message); } }; A._Required.prototype = {}; A.JsLinkedHashMap.prototype = { get$length(_) { return this._length; }, get$isEmpty(_) { return this._length === 0; }, get$keys(_) { return new A.LinkedHashMapKeyIterable(this, A._instanceType(this)._eval$1("LinkedHashMapKeyIterable<1>")); }, get$values(_) { var t1 = A._instanceType(this); return A.MappedIterable_MappedIterable(new A.LinkedHashMapKeyIterable(this, t1._eval$1("LinkedHashMapKeyIterable<1>")), new A.JsLinkedHashMap_values_closure(this), t1._precomputed1, t1._rest[1]); }, containsKey$1(_, key) { var strings, nums; if (typeof key == "string") { strings = this._strings; if (strings == null) return false; return strings[key] != null; } else if (typeof key == "number" && (key & 0x3fffffff) === key) { nums = this._nums; if (nums == null) return false; return nums[key] != null; } else return this.internalContainsKey$1(key); }, internalContainsKey$1(key) { var rest = this.__js_helper$_rest; if (rest == null) return false; return this.internalFindBucketIndex$2(rest[this.internalComputeHashCode$1(key)], key) >= 0; }, $index(_, key) { var strings, cell, t1, nums, _null = null; if (typeof key == "string") { strings = this._strings; if (strings == null) return _null; cell = strings[key]; t1 = cell == null ? _null : cell.hashMapCellValue; return t1; } else if (typeof key == "number" && (key & 0x3fffffff) === key) { nums = this._nums; if (nums == null) return _null; cell = nums[key]; t1 = cell == null ? _null : cell.hashMapCellValue; return t1; } else return this.internalGet$1(key); }, internalGet$1(key) { var bucket, index, rest = this.__js_helper$_rest; if (rest == null) return null; bucket = rest[this.internalComputeHashCode$1(key)]; index = this.internalFindBucketIndex$2(bucket, key); if (index < 0) return null; return bucket[index].hashMapCellValue; }, $indexSet(_, key, value) { var strings, nums, _this = this, t1 = A._instanceType(_this); t1._precomputed1._as(key); t1._rest[1]._as(value); if (typeof key == "string") { strings = _this._strings; _this._addHashTableEntry$3(strings == null ? _this._strings = _this._newHashTable$0() : strings, key, value); } else if (typeof key == "number" && (key & 0x3fffffff) === key) { nums = _this._nums; _this._addHashTableEntry$3(nums == null ? _this._nums = _this._newHashTable$0() : nums, key, value); } else _this.internalSet$2(key, value); }, internalSet$2(key, value) { var rest, hash, bucket, index, _this = this, t1 = A._instanceType(_this); t1._precomputed1._as(key); t1._rest[1]._as(value); rest = _this.__js_helper$_rest; if (rest == null) rest = _this.__js_helper$_rest = _this._newHashTable$0(); hash = _this.internalComputeHashCode$1(key); bucket = rest[hash]; if (bucket == null) rest[hash] = [_this._newLinkedCell$2(key, value)]; else { index = _this.internalFindBucketIndex$2(bucket, key); if (index >= 0) bucket[index].hashMapCellValue = value; else bucket.push(_this._newLinkedCell$2(key, value)); } }, forEach$1(_, action) { var cell, modifications, _this = this; A._instanceType(_this)._eval$1("~(1,2)")._as(action); cell = _this._first; modifications = _this._modifications; for (; cell != null;) { action.call$2(cell.hashMapCellKey, cell.hashMapCellValue); if (modifications !== _this._modifications) throw A.wrapException(A.ConcurrentModificationError$(_this)); cell = cell._next; } }, _addHashTableEntry$3(table, key, value) { var cell, t1 = A._instanceType(this); t1._precomputed1._as(key); t1._rest[1]._as(value); cell = table[key]; if (cell == null) table[key] = this._newLinkedCell$2(key, value); else cell.hashMapCellValue = value; }, _newLinkedCell$2(key, value) { var _this = this, t1 = A._instanceType(_this), cell = new A.LinkedHashMapCell(t1._precomputed1._as(key), t1._rest[1]._as(value)); if (_this._first == null) _this._first = _this._last = cell; else _this._last = _this._last._next = cell; ++_this._length; _this._modifications = _this._modifications + 1 & 1073741823; return cell; }, internalComputeHashCode$1(key) { return J.get$hashCode$(key) & 0x3fffffff; }, internalFindBucketIndex$2(bucket, key) { var $length, i; if (bucket == null) return -1; $length = bucket.length; for (i = 0; i < $length; ++i) if (J.$eq$(bucket[i].hashMapCellKey, key)) return i; return -1; }, toString$0(_) { return A.MapBase_mapToString(this); }, _newHashTable$0() { var table = Object.create(null); table[""] = table; delete table[""]; return table; }, $isLinkedHashMap: 1 }; A.JsLinkedHashMap_values_closure.prototype = { call$1(each) { var t1 = this.$this, t2 = A._instanceType(t1); t1 = t1.$index(0, t2._precomputed1._as(each)); return t1 == null ? t2._rest[1]._as(t1) : t1; }, $signature() { return A._instanceType(this.$this)._eval$1("2(1)"); } }; A.LinkedHashMapCell.prototype = {}; A.LinkedHashMapKeyIterable.prototype = { get$length(_) { return this._map._length; }, get$isEmpty(_) { return this._map._length === 0; }, get$iterator(_) { var t1 = this._map, t2 = new A.LinkedHashMapKeyIterator(t1, t1._modifications, this.$ti._eval$1("LinkedHashMapKeyIterator<1>")); t2._cell = t1._first; return t2; } }; A.LinkedHashMapKeyIterator.prototype = { get$current(_) { return this.__js_helper$_current; }, moveNext$0() { var cell, _this = this, t1 = _this._map; if (_this._modifications !== t1._modifications) throw A.wrapException(A.ConcurrentModificationError$(t1)); cell = _this._cell; if (cell == null) { _this.set$__js_helper$_current(null); return false; } else { _this.set$__js_helper$_current(cell.hashMapCellKey); _this._cell = cell._next; return true; } }, set$__js_helper$_current(_current) { this.__js_helper$_current = this.$ti._eval$1("1?")._as(_current); }, $isIterator: 1 }; A.initHooks_closure.prototype = { call$1(o) { return this.getTag(o); }, $signature: 4 }; A.initHooks_closure0.prototype = { call$2(o, tag) { return this.getUnknownTag(o, tag); }, $signature: 36 }; A.initHooks_closure1.prototype = { call$1(tag) { return this.prototypeForTag(A._asString(tag)); }, $signature: 46 }; A._Cell.prototype = { _readLocal$0() { var t1 = this._value; if (t1 === this) throw A.wrapException(new A.LateError("Local '" + this.__late_helper$_name + "' has not been initialized.")); return t1; }, _readField$0() { var t1 = this._value; if (t1 === this) throw A.wrapException(A.LateError$fieldNI(this.__late_helper$_name)); return t1; } }; A.NativeTypedData.prototype = { _invalidPosition$3(receiver, position, $length, $name) { var t1 = A.RangeError$range(position, 0, $length, $name, null); throw A.wrapException(t1); }, _checkPosition$3(receiver, position, $length, $name) { if (position >>> 0 !== position || position > $length) this._invalidPosition$3(receiver, position, $length, $name); }, $isTypedData: 1 }; A.NativeTypedArray.prototype = { get$length(receiver) { return receiver.length; }, _setRangeFast$4(receiver, start, end, source, skipCount) { var count, sourceLength, targetLength = receiver.length; this._checkPosition$3(receiver, start, targetLength, "start"); this._checkPosition$3(receiver, end, targetLength, "end"); if (start > end) throw A.wrapException(A.RangeError$range(start, 0, end, null, null)); count = end - start; if (skipCount < 0) throw A.wrapException(A.ArgumentError$(skipCount, null)); sourceLength = source.length; if (sourceLength - skipCount < count) throw A.wrapException(A.StateError$("Not enough elements")); if (skipCount !== 0 || sourceLength !== count) source = source.subarray(skipCount, skipCount + count); receiver.set(source, start); }, $isJavaScriptIndexingBehavior: 1 }; A.NativeTypedArrayOfDouble.prototype = { $index(receiver, index) { A._asInt(index); A._checkValidIndex(index, receiver, receiver.length); return receiver[index]; }, $indexSet(receiver, index, value) { A._asInt(index); A._asDouble(value); A._checkValidIndex(index, receiver, receiver.length); receiver[index] = value; }, setRange$4(receiver, start, end, iterable, skipCount) { type$.Iterable_double._as(iterable); if (type$.NativeTypedArrayOfDouble._is(iterable)) { this._setRangeFast$4(receiver, start, end, iterable, skipCount); return; } this.super$ListMixin$setRange(receiver, start, end, iterable, skipCount); }, $isEfficientLengthIterable: 1, $isIterable: 1, $isList: 1 }; A.NativeTypedArrayOfInt.prototype = { $indexSet(receiver, index, value) { A._asInt(index); A._asInt(value); A._checkValidIndex(index, receiver, receiver.length); receiver[index] = value; }, setRange$4(receiver, start, end, iterable, skipCount) { type$.Iterable_int._as(iterable); if (type$.NativeTypedArrayOfInt._is(iterable)) { this._setRangeFast$4(receiver, start, end, iterable, skipCount); return; } this.super$ListMixin$setRange(receiver, start, end, iterable, skipCount); }, setRange$3($receiver, start, end, iterable) { return this.setRange$4($receiver, start, end, iterable, 0); }, $isEfficientLengthIterable: 1, $isIterable: 1, $isList: 1 }; A.NativeFloat32List.prototype = { sublist$2(receiver, start, end) { return new Float32Array(receiver.subarray(start, A._checkValidRange(start, end, receiver.length))); }, $isFloat32List: 1 }; A.NativeFloat64List.prototype = { sublist$2(receiver, start, end) { return new Float64Array(receiver.subarray(start, A._checkValidRange(start, end, receiver.length))); } }; A.NativeInt16List.prototype = { $index(receiver, index) { A._asInt(index); A._checkValidIndex(index, receiver, receiver.length); return receiver[index]; }, sublist$2(receiver, start, end) { return new Int16Array(receiver.subarray(start, A._checkValidRange(start, end, receiver.length))); }, $isInt16List: 1 }; A.NativeInt32List.prototype = { $index(receiver, index) { A._asInt(index); A._checkValidIndex(index, receiver, receiver.length); return receiver[index]; }, sublist$2(receiver, start, end) { return new Int32Array(receiver.subarray(start, A._checkValidRange(start, end, receiver.length))); }, $isInt32List: 1 }; A.NativeInt8List.prototype = { $index(receiver, index) { A._asInt(index); A._checkValidIndex(index, receiver, receiver.length); return receiver[index]; }, sublist$2(receiver, start, end) { return new Int8Array(receiver.subarray(start, A._checkValidRange(start, end, receiver.length))); }, $isInt8List: 1 }; A.NativeUint16List.prototype = { $index(receiver, index) { A._asInt(index); A._checkValidIndex(index, receiver, receiver.length); return receiver[index]; }, sublist$2(receiver, start, end) { return new Uint16Array(receiver.subarray(start, A._checkValidRange(start, end, receiver.length))); }, $isUint16List: 1 }; A.NativeUint32List.prototype = { $index(receiver, index) { A._asInt(index); A._checkValidIndex(index, receiver, receiver.length); return receiver[index]; }, sublist$2(receiver, start, end) { return new Uint32Array(receiver.subarray(start, A._checkValidRange(start, end, receiver.length))); }, sublist$1($receiver, start) { return this.sublist$2($receiver, start, null); }, $isUint32List: 1 }; A.NativeUint8ClampedList.prototype = { get$length(receiver) { return receiver.length; }, $index(receiver, index) { A._asInt(index); A._checkValidIndex(index, receiver, receiver.length); return receiver[index]; }, sublist$2(receiver, start, end) { return new Uint8ClampedArray(receiver.subarray(start, A._checkValidRange(start, end, receiver.length))); } }; A.NativeUint8List.prototype = { get$length(receiver) { return receiver.length; }, $index(receiver, index) { A._asInt(index); A._checkValidIndex(index, receiver, receiver.length); return receiver[index]; }, sublist$2(receiver, start, end) { return new Uint8Array(receiver.subarray(start, A._checkValidRange(start, end, receiver.length))); }, sublist$1($receiver, start) { return this.sublist$2($receiver, start, null); }, $isNativeUint8List: 1, $isUint8List: 1 }; A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin.prototype = {}; A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin_FixedLengthListMixin.prototype = {}; A._NativeTypedArrayOfInt_NativeTypedArray_ListMixin.prototype = {}; A._NativeTypedArrayOfInt_NativeTypedArray_ListMixin_FixedLengthListMixin.prototype = {}; A.Rti.prototype = { _eval$1(recipe) { return A._Universe_evalInEnvironment(init.typeUniverse, this, recipe); }, _bind$1(typeOrTuple) { return A._Universe_bind(init.typeUniverse, this, typeOrTuple); } }; A._FunctionParameters.prototype = {}; A._Type.prototype = { toString$0(_) { return A._rtiToString(this._rti, null); }, $isType: 1 }; A._Error.prototype = { toString$0(_) { return this.__rti$_message; } }; A._TypeError.prototype = {$isTypeError: 1}; A._AsyncRun__initializeScheduleImmediate_internalCallback.prototype = { call$1(_) { var t1 = this._box_0, f = t1.storedCallback; t1.storedCallback = null; f.call$0(); }, $signature: 13 }; A._AsyncRun__initializeScheduleImmediate_closure.prototype = { call$1(callback) { var t1, t2; this._box_0.storedCallback = type$.void_Function._as(callback); t1 = this.div; t2 = this.span; t1.firstChild ? t1.removeChild(t2) : t1.appendChild(t2); }, $signature: 26 }; A._AsyncRun__scheduleImmediateJsOverride_internalCallback.prototype = { call$0() { this.callback.call$0(); }, $signature: 15 }; A._AsyncRun__scheduleImmediateWithSetImmediate_internalCallback.prototype = { call$0() { this.callback.call$0(); }, $signature: 15 }; A._TimerImpl.prototype = { _TimerImpl$2(milliseconds, callback) { if (self.setTimeout != null) self.setTimeout(A.convertDartClosureToJS(new A._TimerImpl_internalCallback(this, callback), 0), milliseconds); else throw A.wrapException(A.UnsupportedError$("`setTimeout()` not found.")); } }; A._TimerImpl_internalCallback.prototype = { call$0() { this.callback.call$0(); }, $signature: 2 }; A._AsyncAwaitCompleter.prototype = { complete$1(_, value) { var t2, _this = this, t1 = _this.$ti; t1._eval$1("1/?")._as(value); if (value == null) t1._precomputed1._as(value); if (!_this.isSync) _this._future._asyncComplete$1(value); else { t2 = _this._future; if (t1._eval$1("Future<1>")._is(value)) t2._chainFuture$1(value); else t2._completeWithValue$1(t1._precomputed1._as(value)); } }, completeError$2(e, st) { var t1 = this._future; if (this.isSync) t1._completeError$2(e, st); else t1._asyncCompleteError$2(e, st); } }; A._awaitOnObject_closure.prototype = { call$1(result) { return this.bodyFunction.call$2(0, result); }, $signature: 5 }; A._awaitOnObject_closure0.prototype = { call$2(error, stackTrace) { this.bodyFunction.call$2(1, new A.ExceptionAndStackTrace(error, type$.StackTrace._as(stackTrace))); }, $signature: 50 }; A._wrapJsFunctionForAsync_closure.prototype = { call$2(errorCode, result) { this.$protected(A._asInt(errorCode), result); }, $signature: 51 }; A._IterationMarker.prototype = { toString$0(_) { return "IterationMarker(" + this.state + ", " + A.S(this.value) + ")"; } }; A._SyncStarIterator.prototype = { get$current(_) { var t1, nested = this._nestedIterator; if (nested == null) { t1 = this._async$_current; return t1 == null ? this.$ti._precomputed1._as(t1) : t1; } return nested.get$current(nested); }, moveNext$0() { var t1, t2, value, state, suspendedBodies, inner, _this = this; for (t1 = _this.$ti._eval$1("Iterator<1>"); true;) { t2 = _this._nestedIterator; if (t2 != null) if (t2.moveNext$0()) return true; else _this.set$_nestedIterator(null); value = function(body, SUCCESS, ERROR) { var errorValue, errorCode = SUCCESS; while (true) try { return body(errorCode, errorValue); } catch (error) { errorValue = error; errorCode = ERROR; } }(_this._body, 0, 1); if (value instanceof A._IterationMarker) { state = value.state; if (state === 2) { suspendedBodies = _this._suspendedBodies; if (suspendedBodies == null || suspendedBodies.length === 0) { _this.set$_async$_current(null); return false; } if (0 >= suspendedBodies.length) return A.ioore(suspendedBodies, -1); _this._body = suspendedBodies.pop(); continue; } else { t2 = value.value; if (state === 3) throw t2; else { inner = t1._as(J.get$iterator$ax(t2)); if (inner instanceof A._SyncStarIterator) { t2 = _this._suspendedBodies; if (t2 == null) t2 = _this._suspendedBodies = []; B.JSArray_methods.add$1(t2, _this._body); _this._body = inner._body; continue; } else { _this.set$_nestedIterator(inner); continue; } } } } else { _this.set$_async$_current(value); return true; } } return false; }, set$_async$_current(_current) { this._async$_current = this.$ti._eval$1("1?")._as(_current); }, set$_nestedIterator(_nestedIterator) { this._nestedIterator = this.$ti._eval$1("Iterator<1>?")._as(_nestedIterator); }, $isIterator: 1 }; A._SyncStarIterable.prototype = { get$iterator(_) { return new A._SyncStarIterator(this._outerHelper(), this.$ti._eval$1("_SyncStarIterator<1>")); } }; A.AsyncError.prototype = { toString$0(_) { return A.S(this.error); }, $isError: 1, get$stackTrace() { return this.stackTrace; } }; A._Completer.prototype = { completeError$2(error, stackTrace) { var t1; A.checkNotNullable(error, "error", type$.Object); t1 = this.future; if ((t1._state & 30) !== 0) throw A.wrapException(A.StateError$("Future already completed")); if (stackTrace == null) stackTrace = A.AsyncError_defaultStackTrace(error); t1._asyncCompleteError$2(error, stackTrace); }, completeError$1(error) { return this.completeError$2(error, null); } }; A._AsyncCompleter.prototype = { complete$1(_, value) { var t2, t1 = this.$ti; t1._eval$1("1/?")._as(value); t2 = this.future; if ((t2._state & 30) !== 0) throw A.wrapException(A.StateError$("Future already completed")); t2._asyncComplete$1(t1._eval$1("1/")._as(value)); } }; A._FutureListener.prototype = { matchesErrorTest$1(asyncError) { if ((this.state & 15) !== 6) return true; return this.result._zone.runUnary$2$2(type$.bool_Function_Object._as(this.callback), asyncError.error, type$.bool, type$.Object); }, handleError$1(asyncError) { var exception, _this = this, errorCallback = _this.errorCallback, result = null, t1 = type$.dynamic, t2 = type$.Object, t3 = asyncError.error, t4 = _this.result._zone; if (type$.dynamic_Function_Object_StackTrace._is(errorCallback)) result = t4.runBinary$3$3(errorCallback, t3, asyncError.stackTrace, t1, t2, type$.StackTrace); else result = t4.runUnary$2$2(type$.dynamic_Function_Object._as(errorCallback), t3, t1, t2); try { t1 = _this.$ti._eval$1("2/")._as(result); return t1; } catch (exception) { if (type$.TypeError._is(A.unwrapException(exception))) { if ((_this.state & 1) !== 0) throw A.wrapException(A.ArgumentError$("The error handler of Future.then must return a value of the returned future's type", "onError")); throw A.wrapException(A.ArgumentError$("The error handler of Future.catchError must return a value of the future's type", "onError")); } else throw exception; } } }; A._Future.prototype = { then$1$2$onError(f, onError, $R) { var currentZone, result, t2, t1 = this.$ti; t1._bind$1($R)._eval$1("1/(2)")._as(f); currentZone = $.Zone__current; if (currentZone === B.C__RootZone) { if (onError != null && !type$.dynamic_Function_Object_StackTrace._is(onError) && !type$.dynamic_Function_Object._is(onError)) throw A.wrapException(A.ArgumentError$value(onError, "onError", string$.Error_)); } else { $R._eval$1("@<0/>")._bind$1(t1._precomputed1)._eval$1("1(2)")._as(f); if (onError != null) onError = A._registerErrorHandler(onError, currentZone); } result = new A._Future(currentZone, $R._eval$1("_Future<0>")); t2 = onError == null ? 1 : 3; this._addListener$1(new A._FutureListener(result, t2, f, onError, t1._eval$1("@<1>")._bind$1($R)._eval$1("_FutureListener<1,2>"))); return result; }, then$1$1(f, $R) { return this.then$1$2$onError(f, null, $R); }, _thenAwait$1$2(f, onError, $E) { var result, t1 = this.$ti; t1._bind$1($E)._eval$1("1/(2)")._as(f); result = new A._Future($.Zone__current, $E._eval$1("_Future<0>")); this._addListener$1(new A._FutureListener(result, 3, f, onError, t1._eval$1("@<1>")._bind$1($E)._eval$1("_FutureListener<1,2>"))); return result; }, _setErrorObject$1(error) { this._state = this._state & 1 | 16; this._resultOrListeners = error; }, _cloneResult$1(source) { this._state = source._state & 30 | this._state & 1; this._resultOrListeners = source._resultOrListeners; }, _addListener$1(listener) { var source, _this = this, t1 = _this._state; if (t1 <= 3) { listener._nextListener = type$.nullable__FutureListener_dynamic_dynamic._as(_this._resultOrListeners); _this._resultOrListeners = listener; } else { if ((t1 & 4) !== 0) { source = type$._Future_dynamic._as(_this._resultOrListeners); if ((source._state & 24) === 0) { source._addListener$1(listener); return; } _this._cloneResult$1(source); } A._rootScheduleMicrotask(null, null, _this._zone, type$.void_Function._as(new A._Future__addListener_closure(_this, listener))); } }, _prependListeners$1(listeners) { var t1, existingListeners, next, cursor, next0, source, _this = this, _box_0 = {}; _box_0.listeners = listeners; if (listeners == null) return; t1 = _this._state; if (t1 <= 3) { existingListeners = type$.nullable__FutureListener_dynamic_dynamic._as(_this._resultOrListeners); _this._resultOrListeners = listeners; if (existingListeners != null) { next = listeners._nextListener; for (cursor = listeners; next != null; cursor = next, next = next0) next0 = next._nextListener; cursor._nextListener = existingListeners; } } else { if ((t1 & 4) !== 0) { source = type$._Future_dynamic._as(_this._resultOrListeners); if ((source._state & 24) === 0) { source._prependListeners$1(listeners); return; } _this._cloneResult$1(source); } _box_0.listeners = _this._reverseListeners$1(listeners); A._rootScheduleMicrotask(null, null, _this._zone, type$.void_Function._as(new A._Future__prependListeners_closure(_box_0, _this))); } }, _removeListeners$0() { var current = type$.nullable__FutureListener_dynamic_dynamic._as(this._resultOrListeners); this._resultOrListeners = null; return this._reverseListeners$1(current); }, _reverseListeners$1(listeners) { var current, prev, next; for (current = listeners, prev = null; current != null; prev = current, current = next) { next = current._nextListener; current._nextListener = prev; } return prev; }, _chainForeignFuture$1(source) { var e, s, exception, _this = this; _this._state ^= 2; try { source.then$1$2$onError(new A._Future__chainForeignFuture_closure(_this), new A._Future__chainForeignFuture_closure0(_this), type$.Null); } catch (exception) { e = A.unwrapException(exception); s = A.getTraceFromException(exception); A.scheduleMicrotask(new A._Future__chainForeignFuture_closure1(_this, e, s)); } }, _completeWithValue$1(value) { var listeners, _this = this; _this.$ti._precomputed1._as(value); listeners = _this._removeListeners$0(); _this._state = 8; _this._resultOrListeners = value; A._Future__propagateToListeners(_this, listeners); }, _completeError$2(error, stackTrace) { var listeners; type$.StackTrace._as(stackTrace); listeners = this._removeListeners$0(); this._setErrorObject$1(A.AsyncError$(error, stackTrace)); A._Future__propagateToListeners(this, listeners); }, _asyncComplete$1(value) { var t1 = this.$ti; t1._eval$1("1/")._as(value); if (t1._eval$1("Future<1>")._is(value)) { this._chainFuture$1(value); return; } this._asyncCompleteWithValue$1(t1._precomputed1._as(value)); }, _asyncCompleteWithValue$1(value) { var _this = this; _this.$ti._precomputed1._as(value); _this._state ^= 2; A._rootScheduleMicrotask(null, null, _this._zone, type$.void_Function._as(new A._Future__asyncCompleteWithValue_closure(_this, value))); }, _chainFuture$1(value) { var _this = this, t1 = _this.$ti; t1._eval$1("Future<1>")._as(value); if (t1._is(value)) { if ((value._state & 16) !== 0) { _this._state ^= 2; A._rootScheduleMicrotask(null, null, _this._zone, type$.void_Function._as(new A._Future__chainFuture_closure(_this, value))); } else A._Future__chainCoreFuture(value, _this); return; } _this._chainForeignFuture$1(value); }, _asyncCompleteError$2(error, stackTrace) { this._state ^= 2; A._rootScheduleMicrotask(null, null, this._zone, type$.void_Function._as(new A._Future__asyncCompleteError_closure(this, error, stackTrace))); }, $isFuture: 1 }; A._Future__addListener_closure.prototype = { call$0() { A._Future__propagateToListeners(this.$this, this.listener); }, $signature: 2 }; A._Future__prependListeners_closure.prototype = { call$0() { A._Future__propagateToListeners(this.$this, this._box_0.listeners); }, $signature: 2 }; A._Future__chainForeignFuture_closure.prototype = { call$1(value) { var error, stackTrace, exception, t1 = this.$this; t1._state ^= 2; try { t1._completeWithValue$1(t1.$ti._precomputed1._as(value)); } catch (exception) { error = A.unwrapException(exception); stackTrace = A.getTraceFromException(exception); t1._completeError$2(error, stackTrace); } }, $signature: 13 }; A._Future__chainForeignFuture_closure0.prototype = { call$2(error, stackTrace) { this.$this._completeError$2(type$.Object._as(error), type$.StackTrace._as(stackTrace)); }, $signature: 25 }; A._Future__chainForeignFuture_closure1.prototype = { call$0() { this.$this._completeError$2(this.e, this.s); }, $signature: 2 }; A._Future__asyncCompleteWithValue_closure.prototype = { call$0() { this.$this._completeWithValue$1(this.value); }, $signature: 2 }; A._Future__chainFuture_closure.prototype = { call$0() { A._Future__chainCoreFuture(this.value, this.$this); }, $signature: 2 }; A._Future__asyncCompleteError_closure.prototype = { call$0() { this.$this._completeError$2(this.error, this.stackTrace); }, $signature: 2 }; A._Future__propagateToListeners_handleWhenCompleteCallback.prototype = { call$0() { var e, s, t1, exception, t2, originalSource, _this = this, completeResult = null; try { t1 = _this._box_0.listener; completeResult = t1.result._zone.run$1$1(type$.dynamic_Function._as(t1.callback), type$.dynamic); } catch (exception) { e = A.unwrapException(exception); s = A.getTraceFromException(exception); t1 = _this.hasError && type$.AsyncError._as(_this._box_1.source._resultOrListeners).error === e; t2 = _this._box_0; if (t1) t2.listenerValueOrError = type$.AsyncError._as(_this._box_1.source._resultOrListeners); else t2.listenerValueOrError = A.AsyncError$(e, s); t2.listenerHasError = true; return; } if (completeResult instanceof A._Future && (completeResult._state & 24) !== 0) { if ((completeResult._state & 16) !== 0) { t1 = _this._box_0; t1.listenerValueOrError = type$.AsyncError._as(completeResult._resultOrListeners); t1.listenerHasError = true; } return; } if (type$.Future_dynamic._is(completeResult)) { originalSource = _this._box_1.source; t1 = _this._box_0; t1.listenerValueOrError = completeResult.then$1$1(new A._Future__propagateToListeners_handleWhenCompleteCallback_closure(originalSource), type$.dynamic); t1.listenerHasError = false; } }, $signature: 2 }; A._Future__propagateToListeners_handleWhenCompleteCallback_closure.prototype = { call$1(_) { return this.originalSource; }, $signature: 34 }; A._Future__propagateToListeners_handleValueCallback.prototype = { call$0() { var e, s, t1, t2, t3, t4, t5, exception; try { t1 = this._box_0; t2 = t1.listener; t3 = t2.$ti; t4 = t3._precomputed1; t5 = t4._as(this.sourceResult); t1.listenerValueOrError = t2.result._zone.runUnary$2$2(t3._eval$1("2/(1)")._as(t2.callback), t5, t3._eval$1("2/"), t4); } catch (exception) { e = A.unwrapException(exception); s = A.getTraceFromException(exception); t1 = this._box_0; t1.listenerValueOrError = A.AsyncError$(e, s); t1.listenerHasError = true; } }, $signature: 2 }; A._Future__propagateToListeners_handleError.prototype = { call$0() { var asyncError, e, s, t1, exception, t2, _this = this; try { asyncError = type$.AsyncError._as(_this._box_1.source._resultOrListeners); t1 = _this._box_0; if (t1.listener.matchesErrorTest$1(asyncError) && t1.listener.errorCallback != null) { t1.listenerValueOrError = t1.listener.handleError$1(asyncError); t1.listenerHasError = false; } } catch (exception) { e = A.unwrapException(exception); s = A.getTraceFromException(exception); t1 = type$.AsyncError._as(_this._box_1.source._resultOrListeners); t2 = _this._box_0; if (t1.error === e) t2.listenerValueOrError = t1; else t2.listenerValueOrError = A.AsyncError$(e, s); t2.listenerHasError = true; } }, $signature: 2 }; A._AsyncCallbackEntry.prototype = {}; A.StreamTransformerBase.prototype = {}; A._StreamIterator.prototype = {}; A._Zone.prototype = {$isZone: 1}; A._rootHandleError_closure.prototype = { call$0() { var t1 = this.error, t2 = this.stackTrace; A.checkNotNullable(t1, "error", type$.Object); A.checkNotNullable(t2, "stackTrace", type$.StackTrace); A.Error__throw(t1, t2); }, $signature: 2 }; A._RootZone.prototype = { runGuarded$1(f) { var e, s, exception; type$.void_Function._as(f); try { if (B.C__RootZone === $.Zone__current) { f.call$0(); return; } A._rootRun(null, null, this, f, type$.void); } catch (exception) { e = A.unwrapException(exception); s = A.getTraceFromException(exception); A._rootHandleError(type$.Object._as(e), type$.StackTrace._as(s)); } }, bindCallbackGuarded$1(f) { return new A._RootZone_bindCallbackGuarded_closure(this, type$.void_Function._as(f)); }, $index(_, key) { return null; }, run$1$1(f, $R) { $R._eval$1("0()")._as(f); if ($.Zone__current === B.C__RootZone) return f.call$0(); return A._rootRun(null, null, this, f, $R); }, runUnary$2$2(f, arg, $R, $T) { $R._eval$1("@<0>")._bind$1($T)._eval$1("1(2)")._as(f); $T._as(arg); if ($.Zone__current === B.C__RootZone) return f.call$1(arg); return A._rootRunUnary(null, null, this, f, arg, $R, $T); }, runBinary$3$3(f, arg1, arg2, $R, T1, T2) { $R._eval$1("@<0>")._bind$1(T1)._bind$1(T2)._eval$1("1(2,3)")._as(f); T1._as(arg1); T2._as(arg2); if ($.Zone__current === B.C__RootZone) return f.call$2(arg1, arg2); return A._rootRunBinary(null, null, this, f, arg1, arg2, $R, T1, T2); }, registerBinaryCallback$3$1(f, $R, T1, T2) { return $R._eval$1("@<0>")._bind$1(T1)._bind$1(T2)._eval$1("1(2,3)")._as(f); } }; A._RootZone_bindCallbackGuarded_closure.prototype = { call$0() { return this.$this.runGuarded$1(this.f); }, $signature: 2 }; A._HashMap.prototype = { get$length(_) { return this._collection$_length; }, get$isEmpty(_) { return this._collection$_length === 0; }, get$keys(_) { return new A._HashMapKeyIterable(this, this.$ti._eval$1("_HashMapKeyIterable<1>")); }, containsKey$1(_, key) { var strings, nums; if (typeof key == "string" && key !== "__proto__") { strings = this._collection$_strings; return strings == null ? false : strings[key] != null; } else if (typeof key == "number" && (key & 1073741823) === key) { nums = this._collection$_nums; return nums == null ? false : nums[key] != null; } else return this._containsKey$1(key); }, _containsKey$1(key) { var rest = this._collection$_rest; if (rest == null) return false; return this._findBucketIndex$2(this._getBucket$2(rest, key), key) >= 0; }, $index(_, key) { var strings, t1, nums; if (typeof key == "string" && key !== "__proto__") { strings = this._collection$_strings; t1 = strings == null ? null : A._HashMap__getTableEntry(strings, key); return t1; } else if (typeof key == "number" && (key & 1073741823) === key) { nums = this._collection$_nums; t1 = nums == null ? null : A._HashMap__getTableEntry(nums, key); return t1; } else return this._get$1(0, key); }, _get$1(_, key) { var bucket, index, rest = this._collection$_rest; if (rest == null) return null; bucket = this._getBucket$2(rest, key); index = this._findBucketIndex$2(bucket, key); return index < 0 ? null : bucket[index + 1]; }, $indexSet(_, key, value) { var strings, nums, rest, hash, bucket, index, _this = this, t1 = _this.$ti; t1._precomputed1._as(key); t1._rest[1]._as(value); if (typeof key == "string" && key !== "__proto__") { strings = _this._collection$_strings; _this._collection$_addHashTableEntry$3(strings == null ? _this._collection$_strings = A._HashMap__newHashTable() : strings, key, value); } else if (typeof key == "number" && (key & 1073741823) === key) { nums = _this._collection$_nums; _this._collection$_addHashTableEntry$3(nums == null ? _this._collection$_nums = A._HashMap__newHashTable() : nums, key, value); } else { rest = _this._collection$_rest; if (rest == null) rest = _this._collection$_rest = A._HashMap__newHashTable(); hash = A.objectHashCode(key) & 1073741823; bucket = rest[hash]; if (bucket == null) { A._HashMap__setTableEntry(rest, hash, [key, value]); ++_this._collection$_length; _this._collection$_keys = null; } else { index = _this._findBucketIndex$2(bucket, key); if (index >= 0) bucket[index + 1] = value; else { bucket.push(key, value); ++_this._collection$_length; _this._collection$_keys = null; } } } }, forEach$1(_, action) { var keys, $length, t2, i, key, t3, _this = this, t1 = _this.$ti; t1._eval$1("~(1,2)")._as(action); keys = _this._computeKeys$0(); for ($length = keys.length, t2 = t1._precomputed1, t1 = t1._rest[1], i = 0; i < $length; ++i) { key = keys[i]; t2._as(key); t3 = _this.$index(0, key); action.call$2(key, t3 == null ? t1._as(t3) : t3); if (keys !== _this._collection$_keys) throw A.wrapException(A.ConcurrentModificationError$(_this)); } }, _computeKeys$0() { var strings, names, entries, index, i, nums, rest, bucket, $length, i0, _this = this, result = _this._collection$_keys; if (result != null) return result; result = A.List_List$filled(_this._collection$_length, null, false, type$.dynamic); strings = _this._collection$_strings; if (strings != null) { names = Object.getOwnPropertyNames(strings); entries = names.length; for (index = 0, i = 0; i < entries; ++i) { result[index] = names[i]; ++index; } } else index = 0; nums = _this._collection$_nums; if (nums != null) { names = Object.getOwnPropertyNames(nums); entries = names.length; for (i = 0; i < entries; ++i) { result[index] = +names[i]; ++index; } } rest = _this._collection$_rest; if (rest != null) { names = Object.getOwnPropertyNames(rest); entries = names.length; for (i = 0; i < entries; ++i) { bucket = rest[names[i]]; $length = bucket.length; for (i0 = 0; i0 < $length; i0 += 2) { result[index] = bucket[i0]; ++index; } } } return _this._collection$_keys = result; }, _collection$_addHashTableEntry$3(table, key, value) { var t1 = this.$ti; t1._precomputed1._as(key); t1._rest[1]._as(value); if (table[key] == null) { ++this._collection$_length; this._collection$_keys = null; } A._HashMap__setTableEntry(table, key, value); }, _getBucket$2(table, key) { return table[A.objectHashCode(key) & 1073741823]; } }; A._IdentityHashMap.prototype = { _findBucketIndex$2(bucket, key) { var $length, i, t1; if (bucket == null) return -1; $length = bucket.length; for (i = 0; i < $length; i += 2) { t1 = bucket[i]; if (t1 == null ? key == null : t1 === key) return i; } return -1; } }; A._HashMapKeyIterable.prototype = { get$length(_) { return this._collection$_map._collection$_length; }, get$isEmpty(_) { return this._collection$_map._collection$_length === 0; }, get$iterator(_) { var t1 = this._collection$_map; return new A._HashMapKeyIterator(t1, t1._computeKeys$0(), this.$ti._eval$1("_HashMapKeyIterator<1>")); } }; A._HashMapKeyIterator.prototype = { get$current(_) { var t1 = this._collection$_current; return t1 == null ? this.$ti._precomputed1._as(t1) : t1; }, moveNext$0() { var _this = this, keys = _this._collection$_keys, offset = _this._offset, t1 = _this._collection$_map; if (keys !== t1._collection$_keys) throw A.wrapException(A.ConcurrentModificationError$(t1)); else if (offset >= keys.length) { _this.set$_collection$_current(null); return false; } else { _this.set$_collection$_current(keys[offset]); _this._offset = offset + 1; return true; } }, set$_collection$_current(_current) { this._collection$_current = this.$ti._eval$1("1?")._as(_current); }, $isIterator: 1 }; A._LinkedCustomHashMap.prototype = { $index(_, key) { if (!A.boolConversionCheck(this._validKey.call$1(key))) return null; return this.super$JsLinkedHashMap$internalGet(key); }, $indexSet(_, key, value) { var t1 = this.$ti; this.super$JsLinkedHashMap$internalSet(t1._precomputed1._as(key), t1._rest[1]._as(value)); }, containsKey$1(_, key) { if (!A.boolConversionCheck(this._validKey.call$1(key))) return false; return this.super$JsLinkedHashMap$internalContainsKey(key); }, internalComputeHashCode$1(key) { return this._hashCode.call$1(this.$ti._precomputed1._as(key)) & 1073741823; }, internalFindBucketIndex$2(bucket, key) { var $length, t1, t2, i; if (bucket == null) return -1; $length = bucket.length; for (t1 = this.$ti._precomputed1, t2 = this._equals, i = 0; i < $length; ++i) if (A.boolConversionCheck(t2.call$2(t1._as(bucket[i].hashMapCellKey), t1._as(key)))) return i; return -1; } }; A._LinkedCustomHashMap_closure.prototype = { call$1(v) { return this.K._is(v); }, $signature: 32 }; A.IterableBase.prototype = {}; A.LinkedHashMap_LinkedHashMap$from_closure.prototype = { call$2(k, v) { this.result.$indexSet(0, this.K._as(k), this.V._as(v)); }, $signature: 31 }; A.ListBase.prototype = {$isEfficientLengthIterable: 1, $isIterable: 1, $isList: 1}; A.ListMixin.prototype = { get$iterator(receiver) { return new A.ListIterator(receiver, this.get$length(receiver), A.instanceType(receiver)._eval$1("ListIterator")); }, elementAt$1(receiver, index) { return this.$index(receiver, index); }, get$isEmpty(receiver) { return this.get$length(receiver) === 0; }, get$isNotEmpty(receiver) { return this.get$length(receiver) !== 0; }, get$first(receiver) { if (this.get$length(receiver) === 0) throw A.wrapException(A.IterableElementError_noElement()); return this.$index(receiver, 0); }, map$1$1(receiver, f, $T) { var t1 = A.instanceType(receiver); return new A.MappedListIterable(receiver, t1._bind$1($T)._eval$1("1(ListMixin.E)")._as(f), t1._eval$1("@")._bind$1($T)._eval$1("MappedListIterable<1,2>")); }, skip$1(receiver, count) { return A.SubListIterable$(receiver, count, null, A.instanceType(receiver)._eval$1("ListMixin.E")); }, sublist$2(receiver, start, end) { var t1, listLength = this.get$length(receiver); A.RangeError_checkValidRange(start, end, listLength); A.RangeError_checkValidRange(start, end, this.get$length(receiver)); t1 = A.instanceType(receiver)._eval$1("ListMixin.E"); return A.List_List$from(A.SubListIterable$(receiver, start, end, t1), t1); }, fillRange$3(receiver, start, end, fill) { var i; A.instanceType(receiver)._eval$1("ListMixin.E?")._as(fill); A.RangeError_checkValidRange(start, end, this.get$length(receiver)); for (i = start; i < end; ++i) this.$indexSet(receiver, i, fill); }, setRange$4(receiver, start, end, iterable, skipCount) { var $length, otherStart, otherList, i, t1 = A.instanceType(receiver); t1._eval$1("Iterable")._as(iterable); A.RangeError_checkValidRange(start, end, this.get$length(receiver)); $length = end - start; if ($length === 0) return; A.RangeError_checkNotNegative(skipCount, "skipCount"); if (t1._eval$1("List")._is(iterable)) { otherStart = skipCount; otherList = iterable; } else { otherList = J.skip$1$ax(iterable, skipCount).toList$1$growable(0, false); otherStart = 0; } t1 = J.getInterceptor$asx(otherList); if (otherStart + $length > t1.get$length(otherList)) throw A.wrapException(A.IterableElementError_tooFew()); if (otherStart < start) for (i = $length - 1; i >= 0; --i) this.$indexSet(receiver, start + i, t1.$index(otherList, otherStart + i)); else for (i = 0; i < $length; ++i) this.$indexSet(receiver, start + i, t1.$index(otherList, otherStart + i)); }, toString$0(receiver) { return A.IterableBase_iterableToFullString(receiver, "[", "]"); } }; A.MapBase.prototype = {}; A.MapBase_mapToString_closure.prototype = { call$2(k, v) { var t2, t1 = this._box_0; if (!t1.first) this.result._contents += ", "; t1.first = false; t1 = this.result; t2 = t1._contents += A.S(k); t1._contents = t2 + ": "; t1._contents += A.S(v); }, $signature: 6 }; A.MapMixin.prototype = { forEach$1(receiver, action) { var t2, key, t3, t1 = A.instanceType(receiver); t1._eval$1("~(MapMixin.K,MapMixin.V)")._as(action); for (t2 = J.get$iterator$ax(this.get$keys(receiver)), t1 = t1._eval$1("MapMixin.V"); t2.moveNext$0();) { key = t2.get$current(t2); t3 = this.$index(receiver, key); action.call$2(key, t3 == null ? t1._as(t3) : t3); } }, get$entries(receiver) { return J.map$1$1$ax(this.get$keys(receiver), new A.MapMixin_entries_closure(receiver), A.instanceType(receiver)._eval$1("MapEntry")); }, map$2$1(receiver, transform, K2, V2) { var result, t2, key, t3, entry, t1 = A.instanceType(receiver); t1._bind$1(K2)._bind$1(V2)._eval$1("MapEntry<1,2>(MapMixin.K,MapMixin.V)")._as(transform); result = A.LinkedHashMap_LinkedHashMap$_empty(K2, V2); for (t2 = J.get$iterator$ax(this.get$keys(receiver)), t1 = t1._eval$1("MapMixin.V"); t2.moveNext$0();) { key = t2.get$current(t2); t3 = this.$index(receiver, key); entry = transform.call$2(key, t3 == null ? t1._as(t3) : t3); result.$indexSet(0, entry.key, entry.value); } return result; }, addEntries$1(receiver, newEntries) { var t1, t2, t3, t4; A.instanceType(receiver)._eval$1("Iterable>")._as(newEntries); for (t1 = J.get$iterator$ax(newEntries._source), t2 = newEntries.$ti, t3 = new A.WhereTypeIterator(t1, t2._eval$1("WhereTypeIterator<1>")), t2 = t2._precomputed1; t3.moveNext$0();) { t4 = t2._as(t1.get$current(t1)); this.$indexSet(receiver, t4.key, t4.value); } }, get$length(receiver) { return J.get$length$asx(this.get$keys(receiver)); }, get$isEmpty(receiver) { return J.get$isEmpty$asx(this.get$keys(receiver)); }, toString$0(receiver) { return A.MapBase_mapToString(receiver); }, $isMap: 1 }; A.MapMixin_entries_closure.prototype = { call$1(key) { var t1 = this.$this, t2 = A.instanceType(t1); t2._eval$1("MapMixin.K")._as(key); t1 = J.$index$asx(t1, key); if (t1 == null) t1 = t2._eval$1("MapMixin.V")._as(t1); return new A.MapEntry(key, t1, t2._eval$1("@")._bind$1(t2._eval$1("MapMixin.V"))._eval$1("MapEntry<1,2>")); }, $signature() { return A.instanceType(this.$this)._eval$1("MapEntry(MapMixin.K)"); } }; A._UnmodifiableMapMixin.prototype = { $indexSet(_, key, value) { var t1 = A._instanceType(this); t1._eval$1("_UnmodifiableMapMixin.K")._as(key); t1._eval$1("_UnmodifiableMapMixin.V")._as(value); throw A.wrapException(A.UnsupportedError$("Cannot modify unmodifiable map")); } }; A.MapView.prototype = { $index(_, key) { return this._collection$_map.$index(0, key); }, containsKey$1(_, key) { return this._collection$_map.containsKey$1(0, key); }, forEach$1(_, action) { this._collection$_map.forEach$1(0, this.$ti._eval$1("~(1,2)")._as(action)); }, get$isEmpty(_) { return this._collection$_map._length === 0; }, get$length(_) { return this._collection$_map._length; }, get$keys(_) { var t1 = this._collection$_map; return new A.LinkedHashMapKeyIterable(t1, t1.$ti._eval$1("LinkedHashMapKeyIterable<1>")); }, toString$0(_) { return A.MapBase_mapToString(this._collection$_map); }, get$entries(_) { var t1 = this._collection$_map; return t1.get$entries(t1); }, $isMap: 1 }; A.UnmodifiableMapView.prototype = {}; A._ListBase_Object_ListMixin.prototype = {}; A._UnmodifiableMapView_MapView__UnmodifiableMapMixin.prototype = {}; A._JsonMap.prototype = { $index(_, key) { var result, t1 = this._processed; if (t1 == null) return this._data.$index(0, key); else if (typeof key != "string") return null; else { result = t1[key]; return typeof result == "undefined" ? this._process$1(key) : result; } }, get$length(_) { return this._processed == null ? this._data._length : this._convert$_computeKeys$0().length; }, get$isEmpty(_) { return this.get$length(this) === 0; }, get$keys(_) { var t1; if (this._processed == null) { t1 = this._data; return new A.LinkedHashMapKeyIterable(t1, A._instanceType(t1)._eval$1("LinkedHashMapKeyIterable<1>")); } return new A._JsonMapKeyIterable(this); }, $indexSet(_, key, value) { var processed, original, _this = this; A._asString(key); if (_this._processed == null) _this._data.$indexSet(0, key, value); else if (_this.containsKey$1(0, key)) { processed = _this._processed; processed[key] = value; original = _this._original; if (original == null ? processed != null : original !== processed) original[key] = null; } else _this._upgrade$0().$indexSet(0, key, value); }, containsKey$1(_, key) { if (this._processed == null) return this._data.containsKey$1(0, key); return Object.prototype.hasOwnProperty.call(this._original, key); }, forEach$1(_, f) { var keys, i, key, value, _this = this; type$.void_Function_String_dynamic._as(f); if (_this._processed == null) return _this._data.forEach$1(0, f); keys = _this._convert$_computeKeys$0(); for (i = 0; i < keys.length; ++i) { key = keys[i]; value = _this._processed[key]; if (typeof value == "undefined") { value = A._convertJsonToDartLazy(_this._original[key]); _this._processed[key] = value; } f.call$2(key, value); if (keys !== _this._data) throw A.wrapException(A.ConcurrentModificationError$(_this)); } }, _convert$_computeKeys$0() { var keys = type$.nullable_List_dynamic._as(this._data); if (keys == null) keys = this._data = A._setArrayType(Object.keys(this._original), type$.JSArray_String); return keys; }, _upgrade$0() { var result, keys, i, t1, key, _this = this; if (_this._processed == null) return _this._data; result = A.LinkedHashMap_LinkedHashMap$_empty(type$.String, type$.dynamic); keys = _this._convert$_computeKeys$0(); for (i = 0; t1 = keys.length, i < t1; ++i) { key = keys[i]; result.$indexSet(0, key, _this.$index(0, key)); } if (t1 === 0) B.JSArray_methods.add$1(keys, ""); else B.JSArray_methods.set$length(keys, 0); _this._original = _this._processed = null; return _this._data = result; }, _process$1(key) { var result; if (!Object.prototype.hasOwnProperty.call(this._original, key)) return null; result = A._convertJsonToDartLazy(this._original[key]); return this._processed[key] = result; } }; A._JsonMapKeyIterable.prototype = { get$length(_) { var t1 = this._parent; return t1.get$length(t1); }, elementAt$1(_, index) { var t1 = this._parent; if (t1._processed == null) t1 = t1.get$keys(t1).elementAt$1(0, index); else { t1 = t1._convert$_computeKeys$0(); if (!(index >= 0 && index < t1.length)) return A.ioore(t1, index); t1 = t1[index]; } return t1; }, get$iterator(_) { var t1 = this._parent; if (t1._processed == null) { t1 = t1.get$keys(t1); t1 = t1.get$iterator(t1); } else { t1 = t1._convert$_computeKeys$0(); t1 = new J.ArrayIterator(t1, t1.length, A._arrayInstanceType(t1)._eval$1("ArrayIterator<1>")); } return t1; } }; A.Utf8Decoder__decoder_closure.prototype = { call$0() { var t1, exception; try { t1 = new TextDecoder("utf-8", {fatal: true}); return t1; } catch (exception) { } return null; }, $signature: 14 }; A.Utf8Decoder__decoderNonfatal_closure.prototype = { call$0() { var t1, exception; try { t1 = new TextDecoder("utf-8", {fatal: false}); return t1; } catch (exception) { } return null; }, $signature: 14 }; A._UnicodeSubsetEncoder.prototype = { convert$1(string) { var i, codeUnit, $length = A.RangeError_checkValidRange(0, null, string.length) - 0, result = new Uint8Array($length); for (i = 0; i < $length; ++i) { codeUnit = B.JSString_methods._codeUnitAt$1(string, i); if ((codeUnit & 4294967040) !== 0) throw A.wrapException(A.ArgumentError$value(string, "string", "Contains invalid characters.")); if (!(i < $length)) return A.ioore(result, i); result[i] = codeUnit; } return result; } }; A._UnicodeSubsetDecoder.prototype = { convert$1(bytes) { var t1, end, i, byte; type$.List_int._as(bytes); t1 = bytes.length; end = A.RangeError_checkValidRange(0, null, t1); for (i = 0; i < end; ++i) { if (!(i < t1)) return A.ioore(bytes, i); byte = bytes[i]; if ((byte & 4294967040) !== 0) { if (!this._allowInvalid) throw A.wrapException(A.FormatException$("Invalid value in input: " + byte, null, null)); return this._convertInvalid$3(bytes, 0, end); } } return A.String_String$fromCharCodes(bytes, 0, end); }, _convertInvalid$3(bytes, start, end) { var t1, i, t2, value; type$.List_int._as(bytes); for (t1 = bytes.length, i = start, t2 = ""; i < end; ++i) { if (!(i < t1)) return A.ioore(bytes, i); value = bytes[i]; t2 += A.Primitives_stringFromCharCode((value & 4294967040) !== 0 ? 65533 : value); } return t2.charCodeAt(0) == 0 ? t2 : t2; } }; A.Codec.prototype = {}; A.Converter.prototype = {}; A.Encoding.prototype = {}; A.JsonUnsupportedObjectError.prototype = { toString$0(_) { var safeString = A.Error_safeToString(this.unsupportedObject); return (this.cause != null ? "Converting object to an encodable object failed:" : "Converting object did not return an encodable object:") + " " + safeString; } }; A.JsonCyclicError.prototype = { toString$0(_) { return "Cyclic error in JSON stringify"; } }; A.JsonCodec.prototype = { decode$1(_, source) { var t1 = A._parseJson(source, this.get$decoder()._reviver); return t1; }, encode$1(value) { var t1 = this.get$encoder(); t1 = A._JsonStringStringifier_stringify(value, t1._toEncodable, t1.indent); return t1; }, get$encoder() { return B.JsonEncoder_null_null; }, get$decoder() { return B.JsonDecoder_null; } }; A.JsonEncoder.prototype = {}; A.JsonDecoder.prototype = {}; A._JsonStringifier.prototype = { writeStringContent$1(s) { var t1, offset, i, charCode, t2, t3, $length = s.length; for (t1 = this._sink, offset = 0, i = 0; i < $length; ++i) { charCode = B.JSString_methods._codeUnitAt$1(s, i); if (charCode > 92) { if (charCode >= 55296) { t2 = charCode & 64512; if (t2 === 55296) { t3 = i + 1; t3 = !(t3 < $length && (B.JSString_methods._codeUnitAt$1(s, t3) & 64512) === 56320); } else t3 = false; if (!t3) if (t2 === 56320) { t2 = i - 1; t2 = !(t2 >= 0 && (B.JSString_methods.codeUnitAt$1(s, t2) & 64512) === 55296); } else t2 = false; else t2 = true; if (t2) { if (i > offset) t1._contents += B.JSString_methods.substring$2(s, offset, i); offset = i + 1; t2 = t1._contents += A.Primitives_stringFromCharCode(92); t2 += A.Primitives_stringFromCharCode(117); t1._contents = t2; t2 += A.Primitives_stringFromCharCode(100); t1._contents = t2; t3 = charCode >>> 8 & 15; t2 += A.Primitives_stringFromCharCode(t3 < 10 ? 48 + t3 : 87 + t3); t1._contents = t2; t3 = charCode >>> 4 & 15; t2 += A.Primitives_stringFromCharCode(t3 < 10 ? 48 + t3 : 87 + t3); t1._contents = t2; t3 = charCode & 15; t1._contents = t2 + A.Primitives_stringFromCharCode(t3 < 10 ? 48 + t3 : 87 + t3); } } continue; } if (charCode < 32) { if (i > offset) t1._contents += B.JSString_methods.substring$2(s, offset, i); offset = i + 1; t2 = t1._contents += A.Primitives_stringFromCharCode(92); switch (charCode) { case 8: t1._contents = t2 + A.Primitives_stringFromCharCode(98); break; case 9: t1._contents = t2 + A.Primitives_stringFromCharCode(116); break; case 10: t1._contents = t2 + A.Primitives_stringFromCharCode(110); break; case 12: t1._contents = t2 + A.Primitives_stringFromCharCode(102); break; case 13: t1._contents = t2 + A.Primitives_stringFromCharCode(114); break; default: t2 += A.Primitives_stringFromCharCode(117); t1._contents = t2; t2 += A.Primitives_stringFromCharCode(48); t1._contents = t2; t2 += A.Primitives_stringFromCharCode(48); t1._contents = t2; t3 = charCode >>> 4 & 15; t2 += A.Primitives_stringFromCharCode(t3 < 10 ? 48 + t3 : 87 + t3); t1._contents = t2; t3 = charCode & 15; t1._contents = t2 + A.Primitives_stringFromCharCode(t3 < 10 ? 48 + t3 : 87 + t3); break; } } else if (charCode === 34 || charCode === 92) { if (i > offset) t1._contents += B.JSString_methods.substring$2(s, offset, i); offset = i + 1; t2 = t1._contents += A.Primitives_stringFromCharCode(92); t1._contents = t2 + A.Primitives_stringFromCharCode(charCode); } } if (offset === 0) t1._contents += s; else if (offset < $length) t1._contents += B.JSString_methods.substring$2(s, offset, $length); }, _checkCycle$1(object) { var t1, t2, i, t3; for (t1 = this._seen, t2 = t1.length, i = 0; i < t2; ++i) { t3 = t1[i]; if (object == null ? t3 == null : object === t3) throw A.wrapException(new A.JsonCyclicError(object, null)); } B.JSArray_methods.add$1(t1, object); }, writeObject$1(object) { var customJson, e, t1, exception, _this = this; if (_this.writeJsonValue$1(object)) return; _this._checkCycle$1(object); try { customJson = _this._toEncodable.call$1(object); if (!_this.writeJsonValue$1(customJson)) { t1 = A.JsonUnsupportedObjectError$(object, null, _this.get$_partialResult()); throw A.wrapException(t1); } t1 = _this._seen; if (0 >= t1.length) return A.ioore(t1, -1); t1.pop(); } catch (exception) { e = A.unwrapException(exception); t1 = A.JsonUnsupportedObjectError$(object, e, _this.get$_partialResult()); throw A.wrapException(t1); } }, writeJsonValue$1(object) { var t1, success, _this = this; if (typeof object == "number") { if (!isFinite(object)) return false; _this._sink._contents += B.JSNumber_methods.toString$0(object); return true; } else if (object === true) { _this._sink._contents += "true"; return true; } else if (object === false) { _this._sink._contents += "false"; return true; } else if (object == null) { _this._sink._contents += "null"; return true; } else if (typeof object == "string") { t1 = _this._sink; t1._contents += '"'; _this.writeStringContent$1(object); t1._contents += '"'; return true; } else if (type$.List_dynamic._is(object)) { _this._checkCycle$1(object); _this.writeList$1(object); t1 = _this._seen; if (0 >= t1.length) return A.ioore(t1, -1); t1.pop(); return true; } else if (type$.Map_dynamic_dynamic._is(object)) { _this._checkCycle$1(object); success = _this.writeMap$1(object); t1 = _this._seen; if (0 >= t1.length) return A.ioore(t1, -1); t1.pop(); return success; } else return false; }, writeList$1(list) { var t2, i, t1 = this._sink; t1._contents += "["; t2 = J.getInterceptor$ax(list); if (t2.get$isNotEmpty(list)) { this.writeObject$1(t2.$index(list, 0)); for (i = 1; i < t2.get$length(list); ++i) { t1._contents += ","; this.writeObject$1(t2.$index(list, i)); } } t1._contents += "]"; }, writeMap$1(map) { var t2, keyValueList, i, separator, t3, _this = this, _box_0 = {}, t1 = J.getInterceptor$asx(map); if (t1.get$isEmpty(map)) { _this._sink._contents += "{}"; return true; } t2 = t1.get$length(map) * 2; keyValueList = A.List_List$filled(t2, null, false, type$.nullable_Object); i = _box_0.i = 0; _box_0.allStringKeys = true; t1.forEach$1(map, new A._JsonStringifier_writeMap_closure(_box_0, keyValueList)); if (!_box_0.allStringKeys) return false; t1 = _this._sink; t1._contents += "{"; for (separator = '"'; i < t2; i += 2, separator = ',"') { t1._contents += separator; _this.writeStringContent$1(A._asString(keyValueList[i])); t1._contents += '":'; t3 = i + 1; if (!(t3 < t2)) return A.ioore(keyValueList, t3); _this.writeObject$1(keyValueList[t3]); } t1._contents += "}"; return true; } }; A._JsonStringifier_writeMap_closure.prototype = { call$2(key, value) { var t1, t2; if (typeof key != "string") this._box_0.allStringKeys = false; t1 = this.keyValueList; t2 = this._box_0; B.JSArray_methods.$indexSet(t1, t2.i++, key); B.JSArray_methods.$indexSet(t1, t2.i++, value); }, $signature: 6 }; A._JsonPrettyPrintMixin.prototype = { writeList$1(list) { var i, _this = this, t1 = J.getInterceptor$asx(list), t2 = t1.get$isEmpty(list), t3 = _this._sink, t4 = t3._contents; if (t2) t3._contents = t4 + "[]"; else { t3._contents = t4 + "[\n"; _this.writeIndentation$1(++_this._JsonPrettyPrintMixin__indentLevel); _this.writeObject$1(t1.$index(list, 0)); for (i = 1; i < t1.get$length(list); ++i) { t3._contents += ",\n"; _this.writeIndentation$1(_this._JsonPrettyPrintMixin__indentLevel); _this.writeObject$1(t1.$index(list, i)); } t3._contents += "\n"; _this.writeIndentation$1(--_this._JsonPrettyPrintMixin__indentLevel); t3._contents += "]"; } }, writeMap$1(map) { var t2, keyValueList, i, separator, t3, _this = this, _box_0 = {}, t1 = J.getInterceptor$asx(map); if (t1.get$isEmpty(map)) { _this._sink._contents += "{}"; return true; } t2 = t1.get$length(map) * 2; keyValueList = A.List_List$filled(t2, null, false, type$.nullable_Object); i = _box_0.i = 0; _box_0.allStringKeys = true; t1.forEach$1(map, new A._JsonPrettyPrintMixin_writeMap_closure(_box_0, keyValueList)); if (!_box_0.allStringKeys) return false; t1 = _this._sink; t1._contents += "{\n"; ++_this._JsonPrettyPrintMixin__indentLevel; for (separator = ""; i < t2; i += 2, separator = ",\n") { t1._contents += separator; _this.writeIndentation$1(_this._JsonPrettyPrintMixin__indentLevel); t1._contents += '"'; _this.writeStringContent$1(A._asString(keyValueList[i])); t1._contents += '": '; t3 = i + 1; if (!(t3 < t2)) return A.ioore(keyValueList, t3); _this.writeObject$1(keyValueList[t3]); } t1._contents += "\n"; _this.writeIndentation$1(--_this._JsonPrettyPrintMixin__indentLevel); t1._contents += "}"; return true; } }; A._JsonPrettyPrintMixin_writeMap_closure.prototype = { call$2(key, value) { var t1, t2; if (typeof key != "string") this._box_0.allStringKeys = false; t1 = this.keyValueList; t2 = this._box_0; B.JSArray_methods.$indexSet(t1, t2.i++, key); B.JSArray_methods.$indexSet(t1, t2.i++, value); }, $signature: 6 }; A._JsonStringStringifier.prototype = { get$_partialResult() { var t1 = this._sink._contents; return t1.charCodeAt(0) == 0 ? t1 : t1; } }; A._JsonStringStringifierPretty.prototype = { writeIndentation$1(count) { var t1, t2, i; for (t1 = this._indent, t2 = this._sink, i = 0; i < count; ++i) t2._contents += t1; } }; A.Latin1Codec.prototype = { decode$1(_, bytes) { var t1; type$.List_int._as(bytes); t1 = B.Latin1Decoder_false.convert$1(bytes); return t1; } }; A.Latin1Encoder.prototype = {}; A.Latin1Decoder.prototype = {}; A.Utf8Decoder.prototype = { convert$1(codeUnits) { var t1, result; type$.List_int._as(codeUnits); t1 = this._allowMalformed; result = A.Utf8Decoder__convertIntercepted(t1, codeUnits, 0, null); if (result != null) return result; return new A._Utf8Decoder(t1).convertGeneral$4(codeUnits, 0, null, true); } }; A._Utf8Decoder.prototype = { convertGeneral$4(codeUnits, start, maybeEnd, single) { var end, bytes, result, t1, message, _this = this; type$.List_int._as(codeUnits); end = A.RangeError_checkValidRange(start, maybeEnd, codeUnits.length); if (start === end) return ""; bytes = A._Utf8Decoder__makeUint8List(codeUnits, start, end); result = _this._convertRecursive$4(bytes, 0, end - start, true); t1 = _this._convert$_state; if ((t1 & 1) !== 0) { message = A._Utf8Decoder_errorDescription(t1); _this._convert$_state = 0; throw A.wrapException(A.FormatException$(message, codeUnits, start + _this._charOrIndex)); } return result; }, _convertRecursive$4(bytes, start, end, single) { var mid, s1, _this = this; if (end - start > 1000) { mid = B.JSInt_methods._tdivFast$1(start + end, 2); s1 = _this._convertRecursive$4(bytes, start, mid, false); if ((_this._convert$_state & 1) !== 0) return s1; return s1 + _this._convertRecursive$4(bytes, mid, end, single); } return _this.decodeGeneral$4(bytes, start, end, single); }, decodeGeneral$4(bytes, start, end, single) { var byte, t2, type, t3, i0, markEnd, i1, m, _this = this, _65533 = 65533, state = _this._convert$_state, char = _this._charOrIndex, buffer = new A.StringBuffer(""), i = start + 1, t1 = bytes.length; if (!(start >= 0 && start < t1)) return A.ioore(bytes, start); byte = bytes[start]; $label0$0: for (t2 = _this.allowMalformed; true;) { for (; true; i = i0) { type = B.JSString_methods._codeUnitAt$1("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHIHHHJEEBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBKCCCCCCCCCCCCDCLONNNMEEEEEEEEEEE", byte) & 31; char = state <= 32 ? byte & 61694 >>> type : (byte & 63 | char << 6) >>> 0; state = B.JSString_methods._codeUnitAt$1(" \x000:XECCCCCN:lDb \x000:XECCCCCNvlDb \x000:XECCCCCN:lDb AAAAA\x00\x00\x00\x00\x00AAAAA00000AAAAA:::::AAAAAGG000AAAAA00KKKAAAAAG::::AAAAA:IIIIAAAAA000\x800AAAAA\x00\x00\x00\x00 AAAAA", state + type); if (state === 0) { buffer._contents += A.Primitives_stringFromCharCode(char); if (i === end) break $label0$0; break; } else if ((state & 1) !== 0) { if (t2) switch (state) { case 69: case 67: buffer._contents += A.Primitives_stringFromCharCode(_65533); break; case 65: buffer._contents += A.Primitives_stringFromCharCode(_65533); --i; break; default: t3 = buffer._contents += A.Primitives_stringFromCharCode(_65533); buffer._contents = t3 + A.Primitives_stringFromCharCode(_65533); break; } else { _this._convert$_state = state; _this._charOrIndex = i - 1; return ""; } state = 0; } if (i === end) break $label0$0; i0 = i + 1; if (!(i >= 0 && i < t1)) return A.ioore(bytes, i); byte = bytes[i]; } i0 = i + 1; if (!(i >= 0 && i < t1)) return A.ioore(bytes, i); byte = bytes[i]; if (byte < 128) { while (true) { if (!(i0 < end)) { markEnd = end; break; } i1 = i0 + 1; if (!(i0 >= 0 && i0 < t1)) return A.ioore(bytes, i0); byte = bytes[i0]; if (byte >= 128) { markEnd = i1 - 1; i0 = i1; break; } i0 = i1; } if (markEnd - i < 20) for (m = i; m < markEnd; ++m) { if (!(m < t1)) return A.ioore(bytes, m); buffer._contents += A.Primitives_stringFromCharCode(bytes[m]); } else buffer._contents += A.String_String$fromCharCodes(bytes, i, markEnd); if (markEnd === end) break $label0$0; i = i0; } else i = i0; } if (single && state > 32) if (t2) buffer._contents += A.Primitives_stringFromCharCode(_65533); else { _this._convert$_state = 77; _this._charOrIndex = end; return ""; } _this._convert$_state = state; _this._charOrIndex = char; t1 = buffer._contents; return t1.charCodeAt(0) == 0 ? t1 : t1; } }; A.__JsonStringStringifierPretty__JsonStringStringifier__JsonPrettyPrintMixin.prototype = {}; A.NoSuchMethodError_toString_closure.prototype = { call$2(key, value) { var t1, t2, t3; type$.Symbol._as(key); t1 = this.sb; t2 = this._box_0; t3 = t1._contents += t2.comma; t3 += key._name; t1._contents = t3; t1._contents = t3 + ": "; t1._contents += A.Error_safeToString(value); t2.comma = ", "; }, $signature: 27 }; A.DateTime.prototype = { $eq(_, other) { if (other == null) return false; return other instanceof A.DateTime && this._core$_value === other._core$_value && this.isUtc === other.isUtc; }, get$hashCode(_) { var t1 = this._core$_value; return (t1 ^ B.JSInt_methods._shrOtherPositive$1(t1, 30)) & 1073741823; }, toString$0(_) { var _this = this, y = A.DateTime__fourDigits(A.Primitives_getYear(_this)), m = A.DateTime__twoDigits(A.Primitives_getMonth(_this)), d = A.DateTime__twoDigits(A.Primitives_getDay(_this)), h = A.DateTime__twoDigits(A.Primitives_getHours(_this)), min = A.DateTime__twoDigits(A.Primitives_getMinutes(_this)), sec = A.DateTime__twoDigits(A.Primitives_getSeconds(_this)), ms = A.DateTime__threeDigits(A.Primitives_getMilliseconds(_this)), t1 = y + "-" + m; if (_this.isUtc) return t1 + "-" + d + " " + h + ":" + min + ":" + sec + "." + ms + "Z"; else return t1 + "-" + d + " " + h + ":" + min + ":" + sec + "." + ms; } }; A._Enum.prototype = {}; A.Error.prototype = { get$stackTrace() { return A.getTraceFromException(this.$thrownJsError); } }; A.AssertionError.prototype = { toString$0(_) { var t1 = this.message; if (t1 != null) return "Assertion failed: " + A.Error_safeToString(t1); return "Assertion failed"; } }; A.TypeError.prototype = {}; A.NullThrownError.prototype = { toString$0(_) { return "Throw of null."; } }; A.ArgumentError.prototype = { get$_errorName() { return "Invalid argument" + (!this._hasValue ? "(s)" : ""); }, get$_errorExplanation() { return ""; }, toString$0(_) { var _this = this, $name = _this.name, nameString = $name == null ? "" : " (" + $name + ")", message = _this.message, messageString = message == null ? "" : ": " + A.S(message), prefix = _this.get$_errorName() + nameString + messageString; if (!_this._hasValue) return prefix; return prefix + _this.get$_errorExplanation() + ": " + A.Error_safeToString(_this.invalidValue); } }; A.RangeError.prototype = { get$_errorName() { return "RangeError"; }, get$_errorExplanation() { var explanation, start = this.start, end = this.end; if (start == null) explanation = end != null ? ": Not less than or equal to " + A.S(end) : ""; else if (end == null) explanation = ": Not greater than or equal to " + A.S(start); else if (end > start) explanation = ": Not in inclusive range " + A.S(start) + ".." + A.S(end); else explanation = end < start ? ": Valid value range is empty" : ": Only valid value is " + A.S(start); return explanation; } }; A.IndexError.prototype = { get$_errorName() { return "RangeError"; }, get$_errorExplanation() { if (A._asInt(this.invalidValue) < 0) return ": index must not be negative"; var t1 = this.length; if (t1 === 0) return ": no indices are valid"; return ": index should be less than " + t1; }, get$length(receiver) { return this.length; } }; A.NoSuchMethodError.prototype = { toString$0(_) { var $arguments, t1, _i, t2, t3, argument, receiverText, actualParameters, _this = this, _box_0 = {}, sb = new A.StringBuffer(""); _box_0.comma = ""; $arguments = _this._core$_arguments; for (t1 = $arguments.length, _i = 0, t2 = "", t3 = ""; _i < t1; ++_i, t3 = ", ") { argument = $arguments[_i]; sb._contents = t2 + t3; t2 = sb._contents += A.Error_safeToString(argument); _box_0.comma = ", "; } _this._namedArguments.forEach$1(0, new A.NoSuchMethodError_toString_closure(_box_0, sb)); receiverText = A.Error_safeToString(_this._core$_receiver); actualParameters = sb.toString$0(0); return "NoSuchMethodError: method not found: '" + _this._core$_memberName._name + "'\nReceiver: " + receiverText + "\nArguments: [" + actualParameters + "]"; } }; A.UnsupportedError.prototype = { toString$0(_) { return "Unsupported operation: " + this.message; } }; A.UnimplementedError.prototype = { toString$0(_) { var message = this.message; return message != null ? "UnimplementedError: " + message : "UnimplementedError"; } }; A.StateError.prototype = { toString$0(_) { return "Bad state: " + this.message; } }; A.ConcurrentModificationError.prototype = { toString$0(_) { var t1 = this.modifiedObject; if (t1 == null) return "Concurrent modification during iteration."; return "Concurrent modification during iteration: " + A.Error_safeToString(t1) + "."; } }; A.OutOfMemoryError.prototype = { toString$0(_) { return "Out of Memory"; }, get$stackTrace() { return null; }, $isError: 1 }; A.StackOverflowError.prototype = { toString$0(_) { return "Stack Overflow"; }, get$stackTrace() { return null; }, $isError: 1 }; A.CyclicInitializationError.prototype = { toString$0(_) { return "Reading static variable '" + this.variableName + "' during its initialization"; } }; A._Exception.prototype = { toString$0(_) { return "Exception: " + this.message; } }; A.FormatException.prototype = { toString$0(_) { var message = this.message, report = "" !== message ? "FormatException: " + message : "FormatException", offset = this.offset; return offset != null ? report + (" (at offset " + A.S(offset) + ")") : report; } }; A.Iterable.prototype = { map$1$1(_, toElement, $T) { var t1 = A._instanceType(this); return A.MappedIterable_MappedIterable(this, t1._bind$1($T)._eval$1("1(Iterable.E)")._as(toElement), t1._eval$1("Iterable.E"), $T); }, toList$1$growable(_, growable) { return A.List_List$of(this, true, A._instanceType(this)._eval$1("Iterable.E")); }, toList$0($receiver) { return this.toList$1$growable($receiver, true); }, get$length(_) { var count, it = this.get$iterator(this); for (count = 0; it.moveNext$0();) ++count; return count; }, get$isEmpty(_) { return !this.get$iterator(this).moveNext$0(); }, get$first(_) { var it = this.get$iterator(this); if (!it.moveNext$0()) throw A.wrapException(A.IterableElementError_noElement()); return it.get$current(it); }, elementAt$1(_, index) { var t1, elementIndex, element; A.RangeError_checkNotNegative(index, "index"); for (t1 = this.get$iterator(this), elementIndex = 0; t1.moveNext$0();) { element = t1.get$current(t1); if (index === elementIndex) return element; ++elementIndex; } throw A.wrapException(A.IndexError$(index, this, "index", null, elementIndex)); }, toString$0(_) { return A.IterableBase_iterableToShortString(this, "(", ")"); } }; A._GeneratorIterable.prototype = { elementAt$1(_, index) { A.RangeError_checkValidIndex(index, this); return this._generator.call$1(index); }, get$length(receiver) { return this.length; } }; A.Iterator.prototype = {}; A.MapEntry.prototype = { toString$0(_) { return "MapEntry(" + A.S(this.key) + ": " + A.S(this.value) + ")"; } }; A.Null.prototype = { get$hashCode(_) { return A.Object.prototype.get$hashCode.call(this, this); }, toString$0(_) { return "null"; } }; A.Object.prototype = {$isObject: 1, $eq(_, other) { return this === other; }, get$hashCode(_) { return A.Primitives_objectHashCode(this); }, toString$0(_) { return "Instance of '" + A.Primitives_objectTypeName(this) + "'"; }, noSuchMethod$1(_, invocation) { type$.Invocation._as(invocation); throw A.wrapException(A.NoSuchMethodError$(this, invocation.get$memberName(), invocation.get$positionalArguments(), invocation.get$namedArguments())); }, toString() { return this.toString$0(this); } }; A._StringStackTrace.prototype = { toString$0(_) { return ""; }, $isStackTrace: 1 }; A.StringBuffer.prototype = { get$length(_) { return this._contents.length; }, toString$0(_) { var t1 = this._contents; return t1.charCodeAt(0) == 0 ? t1 : t1; }, $isStringSink: 1 }; A.HtmlElement.prototype = {}; A.AccessibleNodeList.prototype = { get$length(receiver) { return receiver.length; } }; A.AnchorElement.prototype = { toString$0(receiver) { return String(receiver); } }; A.AreaElement.prototype = { toString$0(receiver) { return String(receiver); } }; A.Blob.prototype = {$isBlob: 1}; A.CharacterData.prototype = { get$length(receiver) { return receiver.length; } }; A.CssPerspective.prototype = { get$length(receiver) { return receiver.length; } }; A.CssRule.prototype = {$isCssRule: 1}; A.CssStyleDeclaration.prototype = { get$length(receiver) { return receiver.length; } }; A.CssStyleDeclarationBase.prototype = {}; A.CssStyleValue.prototype = {}; A.CssTransformComponent.prototype = {}; A.CssTransformValue.prototype = { get$length(receiver) { return receiver.length; } }; A.CssUnparsedValue.prototype = { get$length(receiver) { return receiver.length; } }; A.DataTransferItemList.prototype = { get$length(receiver) { return receiver.length; }, $index(receiver, index) { return receiver[A._asInt(index)]; } }; A.DomException.prototype = { toString$0(receiver) { return String(receiver); } }; A.DomRectList.prototype = { get$length(receiver) { return receiver.length; }, $index(receiver, index) { A._asInt(index); if (index >>> 0 !== index || index >= receiver.length) throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); return receiver[index]; }, $indexSet(receiver, index, value) { A._asInt(index); type$.Rectangle_num._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, get$first(receiver) { if (receiver.length > 0) return receiver[0]; throw A.wrapException(A.StateError$("No elements")); }, elementAt$1(receiver, index) { if (!(index >= 0 && index < receiver.length)) return A.ioore(receiver, index); return receiver[index]; }, $isEfficientLengthIterable: 1, $isJavaScriptIndexingBehavior: 1, $isIterable: 1, $isList: 1 }; A.DomRectReadOnly.prototype = { toString$0(receiver) { var t2, t1 = receiver.left; t1.toString; t2 = receiver.top; t2.toString; return "Rectangle (" + A.S(t1) + ", " + A.S(t2) + ") " + A.S(this.get$width(receiver)) + " x " + A.S(this.get$height(receiver)); }, $eq(receiver, other) { var t1, t2; if (other == null) return false; if (type$.Rectangle_num._is(other)) { t1 = receiver.left; t1.toString; t2 = other.left; t2.toString; if (t1 === t2) { t1 = receiver.top; t1.toString; t2 = other.top; t2.toString; if (t1 === t2) { t1 = J.getInterceptor$x(other); t1 = this.get$width(receiver) === t1.get$width(other) && this.get$height(receiver) === t1.get$height(other); } else t1 = false; } else t1 = false; } else t1 = false; return t1; }, get$hashCode(receiver) { var t2, t1 = receiver.left; t1.toString; t2 = receiver.top; t2.toString; return A.Object_hash(t1, t2, this.get$width(receiver), this.get$height(receiver)); }, get$_height(receiver) { return receiver.height; }, get$height(receiver) { var t1 = this.get$_height(receiver); t1.toString; return t1; }, get$_width(receiver) { return receiver.width; }, get$width(receiver) { var t1 = this.get$_width(receiver); t1.toString; return t1; }, $isRectangle: 1 }; A.DomStringList.prototype = { get$length(receiver) { return receiver.length; }, $index(receiver, index) { A._asInt(index); if (index >>> 0 !== index || index >= receiver.length) throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); return receiver[index]; }, $indexSet(receiver, index, value) { A._asInt(index); A._asString(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, get$first(receiver) { if (receiver.length > 0) return receiver[0]; throw A.wrapException(A.StateError$("No elements")); }, elementAt$1(receiver, index) { if (!(index >= 0 && index < receiver.length)) return A.ioore(receiver, index); return receiver[index]; }, $isEfficientLengthIterable: 1, $isJavaScriptIndexingBehavior: 1, $isIterable: 1, $isList: 1 }; A.DomTokenList.prototype = { get$length(receiver) { return receiver.length; } }; A.Element.prototype = { toString$0(receiver) { return receiver.localName; } }; A.Event.prototype = { get$target(receiver) { return A._convertNativeToDart_EventTarget(receiver.target); }, $isEvent: 1 }; A.EventTarget.prototype = {$isEventTarget: 1}; A.File.prototype = {$isFile: 1}; A.FileList.prototype = { get$length(receiver) { return receiver.length; }, $index(receiver, index) { A._asInt(index); if (index >>> 0 !== index || index >= receiver.length) throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); return receiver[index]; }, $indexSet(receiver, index, value) { A._asInt(index); type$.File._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, get$first(receiver) { if (receiver.length > 0) return receiver[0]; throw A.wrapException(A.StateError$("No elements")); }, elementAt$1(receiver, index) { if (!(index >= 0 && index < receiver.length)) return A.ioore(receiver, index); return receiver[index]; }, $isEfficientLengthIterable: 1, $isJavaScriptIndexingBehavior: 1, $isIterable: 1, $isList: 1 }; A.FileWriter.prototype = { get$length(receiver) { return receiver.length; } }; A.FormElement.prototype = { get$length(receiver) { return receiver.length; } }; A.Gamepad.prototype = {$isGamepad: 1}; A.History.prototype = { get$length(receiver) { return receiver.length; } }; A.HtmlCollection.prototype = { get$length(receiver) { return receiver.length; }, $index(receiver, index) { A._asInt(index); if (index >>> 0 !== index || index >= receiver.length) throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); return receiver[index]; }, $indexSet(receiver, index, value) { A._asInt(index); type$.Node._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, get$first(receiver) { if (receiver.length > 0) return receiver[0]; throw A.wrapException(A.StateError$("No elements")); }, elementAt$1(receiver, index) { if (!(index >= 0 && index < receiver.length)) return A.ioore(receiver, index); return receiver[index]; }, $isEfficientLengthIterable: 1, $isJavaScriptIndexingBehavior: 1, $isIterable: 1, $isList: 1 }; A.ImageData.prototype = {$isImageData: 1}; A.Location.prototype = { toString$0(receiver) { return String(receiver); } }; A.MediaList.prototype = { get$length(receiver) { return receiver.length; } }; A.MessageEvent.prototype = {$isMessageEvent: 1}; A.MidiInputMap.prototype = { $index(receiver, key) { return A.convertNativeToDart_Dictionary(receiver.get(A._asString(key))); }, forEach$1(receiver, f) { var entries, entry; type$.void_Function_String_dynamic._as(f); entries = receiver.entries(); for (; true;) { entry = entries.next(); if (entry.done) return; f.call$2(entry.value[0], A.convertNativeToDart_Dictionary(entry.value[1])); } }, get$keys(receiver) { var keys = A._setArrayType([], type$.JSArray_String); this.forEach$1(receiver, new A.MidiInputMap_keys_closure(keys)); return keys; }, get$length(receiver) { return receiver.size; }, get$isEmpty(receiver) { return receiver.size === 0; }, $indexSet(receiver, key, value) { A._asString(key); throw A.wrapException(A.UnsupportedError$("Not supported")); }, $isMap: 1 }; A.MidiInputMap_keys_closure.prototype = { call$2(k, v) { return B.JSArray_methods.add$1(this.keys, k); }, $signature: 3 }; A.MidiOutputMap.prototype = { $index(receiver, key) { return A.convertNativeToDart_Dictionary(receiver.get(A._asString(key))); }, forEach$1(receiver, f) { var entries, entry; type$.void_Function_String_dynamic._as(f); entries = receiver.entries(); for (; true;) { entry = entries.next(); if (entry.done) return; f.call$2(entry.value[0], A.convertNativeToDart_Dictionary(entry.value[1])); } }, get$keys(receiver) { var keys = A._setArrayType([], type$.JSArray_String); this.forEach$1(receiver, new A.MidiOutputMap_keys_closure(keys)); return keys; }, get$length(receiver) { return receiver.size; }, get$isEmpty(receiver) { return receiver.size === 0; }, $indexSet(receiver, key, value) { A._asString(key); throw A.wrapException(A.UnsupportedError$("Not supported")); }, $isMap: 1 }; A.MidiOutputMap_keys_closure.prototype = { call$2(k, v) { return B.JSArray_methods.add$1(this.keys, k); }, $signature: 3 }; A.MimeType.prototype = {$isMimeType: 1}; A.MimeTypeArray.prototype = { get$length(receiver) { return receiver.length; }, $index(receiver, index) { A._asInt(index); if (index >>> 0 !== index || index >= receiver.length) throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); return receiver[index]; }, $indexSet(receiver, index, value) { A._asInt(index); type$.MimeType._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, get$first(receiver) { if (receiver.length > 0) return receiver[0]; throw A.wrapException(A.StateError$("No elements")); }, elementAt$1(receiver, index) { if (!(index >= 0 && index < receiver.length)) return A.ioore(receiver, index); return receiver[index]; }, $isEfficientLengthIterable: 1, $isJavaScriptIndexingBehavior: 1, $isIterable: 1, $isList: 1 }; A.Node.prototype = { toString$0(receiver) { var value = receiver.nodeValue; return value == null ? this.super$Interceptor$toString(receiver) : value; }, $isNode: 1 }; A.NodeList.prototype = { get$length(receiver) { return receiver.length; }, $index(receiver, index) { A._asInt(index); if (index >>> 0 !== index || index >= receiver.length) throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); return receiver[index]; }, $indexSet(receiver, index, value) { A._asInt(index); type$.Node._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, get$first(receiver) { if (receiver.length > 0) return receiver[0]; throw A.wrapException(A.StateError$("No elements")); }, elementAt$1(receiver, index) { if (!(index >= 0 && index < receiver.length)) return A.ioore(receiver, index); return receiver[index]; }, $isEfficientLengthIterable: 1, $isJavaScriptIndexingBehavior: 1, $isIterable: 1, $isList: 1 }; A.Plugin.prototype = { get$length(receiver) { return receiver.length; }, $isPlugin: 1 }; A.PluginArray.prototype = { get$length(receiver) { return receiver.length; }, $index(receiver, index) { A._asInt(index); if (index >>> 0 !== index || index >= receiver.length) throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); return receiver[index]; }, $indexSet(receiver, index, value) { A._asInt(index); type$.Plugin._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, get$first(receiver) { if (receiver.length > 0) return receiver[0]; throw A.wrapException(A.StateError$("No elements")); }, elementAt$1(receiver, index) { if (!(index >= 0 && index < receiver.length)) return A.ioore(receiver, index); return receiver[index]; }, $isEfficientLengthIterable: 1, $isJavaScriptIndexingBehavior: 1, $isIterable: 1, $isList: 1 }; A.RtcStatsReport.prototype = { $index(receiver, key) { return A.convertNativeToDart_Dictionary(receiver.get(A._asString(key))); }, forEach$1(receiver, f) { var entries, entry; type$.void_Function_String_dynamic._as(f); entries = receiver.entries(); for (; true;) { entry = entries.next(); if (entry.done) return; f.call$2(entry.value[0], A.convertNativeToDart_Dictionary(entry.value[1])); } }, get$keys(receiver) { var keys = A._setArrayType([], type$.JSArray_String); this.forEach$1(receiver, new A.RtcStatsReport_keys_closure(keys)); return keys; }, get$length(receiver) { return receiver.size; }, get$isEmpty(receiver) { return receiver.size === 0; }, $indexSet(receiver, key, value) { A._asString(key); throw A.wrapException(A.UnsupportedError$("Not supported")); }, $isMap: 1 }; A.RtcStatsReport_keys_closure.prototype = { call$2(k, v) { return B.JSArray_methods.add$1(this.keys, k); }, $signature: 3 }; A.SelectElement.prototype = { get$length(receiver) { return receiver.length; } }; A.SourceBuffer.prototype = {$isSourceBuffer: 1}; A.SourceBufferList.prototype = { get$length(receiver) { return receiver.length; }, $index(receiver, index) { A._asInt(index); if (index >>> 0 !== index || index >= receiver.length) throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); return receiver[index]; }, $indexSet(receiver, index, value) { A._asInt(index); type$.SourceBuffer._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, get$first(receiver) { if (receiver.length > 0) return receiver[0]; throw A.wrapException(A.StateError$("No elements")); }, elementAt$1(receiver, index) { if (!(index >= 0 && index < receiver.length)) return A.ioore(receiver, index); return receiver[index]; }, $isEfficientLengthIterable: 1, $isJavaScriptIndexingBehavior: 1, $isIterable: 1, $isList: 1 }; A.SpeechGrammar.prototype = {$isSpeechGrammar: 1}; A.SpeechGrammarList.prototype = { get$length(receiver) { return receiver.length; }, $index(receiver, index) { A._asInt(index); if (index >>> 0 !== index || index >= receiver.length) throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); return receiver[index]; }, $indexSet(receiver, index, value) { A._asInt(index); type$.SpeechGrammar._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, get$first(receiver) { if (receiver.length > 0) return receiver[0]; throw A.wrapException(A.StateError$("No elements")); }, elementAt$1(receiver, index) { if (!(index >= 0 && index < receiver.length)) return A.ioore(receiver, index); return receiver[index]; }, $isEfficientLengthIterable: 1, $isJavaScriptIndexingBehavior: 1, $isIterable: 1, $isList: 1 }; A.SpeechRecognitionResult.prototype = { get$length(receiver) { return receiver.length; }, $isSpeechRecognitionResult: 1 }; A.Storage.prototype = { $index(receiver, key) { return receiver.getItem(A._asString(key)); }, $indexSet(receiver, key, value) { receiver.setItem(A._asString(key), A._asString(value)); }, forEach$1(receiver, f) { var i, key, t1; type$.void_Function_String_String._as(f); for (i = 0; true; ++i) { key = receiver.key(i); if (key == null) return; t1 = receiver.getItem(key); t1.toString; f.call$2(key, t1); } }, get$keys(receiver) { var keys = A._setArrayType([], type$.JSArray_String); this.forEach$1(receiver, new A.Storage_keys_closure(keys)); return keys; }, get$length(receiver) { return receiver.length; }, get$isEmpty(receiver) { return receiver.key(0) == null; }, $isMap: 1 }; A.Storage_keys_closure.prototype = { call$2(k, v) { return B.JSArray_methods.add$1(this.keys, k); }, $signature: 53 }; A.StyleSheet.prototype = {$isStyleSheet: 1}; A.TextTrack.prototype = {$isTextTrack: 1}; A.TextTrackCue.prototype = {$isTextTrackCue: 1}; A.TextTrackCueList.prototype = { get$length(receiver) { return receiver.length; }, $index(receiver, index) { A._asInt(index); if (index >>> 0 !== index || index >= receiver.length) throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); return receiver[index]; }, $indexSet(receiver, index, value) { A._asInt(index); type$.TextTrackCue._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, get$first(receiver) { if (receiver.length > 0) return receiver[0]; throw A.wrapException(A.StateError$("No elements")); }, elementAt$1(receiver, index) { if (!(index >= 0 && index < receiver.length)) return A.ioore(receiver, index); return receiver[index]; }, $isEfficientLengthIterable: 1, $isJavaScriptIndexingBehavior: 1, $isIterable: 1, $isList: 1 }; A.TextTrackList.prototype = { get$length(receiver) { return receiver.length; }, $index(receiver, index) { A._asInt(index); if (index >>> 0 !== index || index >= receiver.length) throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); return receiver[index]; }, $indexSet(receiver, index, value) { A._asInt(index); type$.TextTrack._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, get$first(receiver) { if (receiver.length > 0) return receiver[0]; throw A.wrapException(A.StateError$("No elements")); }, elementAt$1(receiver, index) { if (!(index >= 0 && index < receiver.length)) return A.ioore(receiver, index); return receiver[index]; }, $isEfficientLengthIterable: 1, $isJavaScriptIndexingBehavior: 1, $isIterable: 1, $isList: 1 }; A.TimeRanges.prototype = { get$length(receiver) { return receiver.length; } }; A.Touch.prototype = {$isTouch: 1}; A.TouchList.prototype = { get$length(receiver) { return receiver.length; }, $index(receiver, index) { A._asInt(index); if (index >>> 0 !== index || index >= receiver.length) throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); return receiver[index]; }, $indexSet(receiver, index, value) { A._asInt(index); type$.Touch._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, get$first(receiver) { if (receiver.length > 0) return receiver[0]; throw A.wrapException(A.StateError$("No elements")); }, elementAt$1(receiver, index) { if (!(index >= 0 && index < receiver.length)) return A.ioore(receiver, index); return receiver[index]; }, $isEfficientLengthIterable: 1, $isJavaScriptIndexingBehavior: 1, $isIterable: 1, $isList: 1 }; A.TrackDefaultList.prototype = { get$length(receiver) { return receiver.length; } }; A.Url.prototype = { toString$0(receiver) { return String(receiver); } }; A.VideoTrackList.prototype = { get$length(receiver) { return receiver.length; } }; A.Window.prototype = {$isWindow: 1, $isWindowBase: 1}; A.WorkerGlobalScope.prototype = {$isWorkerGlobalScope: 1}; A._CssRuleList.prototype = { get$length(receiver) { return receiver.length; }, $index(receiver, index) { A._asInt(index); if (index >>> 0 !== index || index >= receiver.length) throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); return receiver[index]; }, $indexSet(receiver, index, value) { A._asInt(index); type$.CssRule._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, get$first(receiver) { if (receiver.length > 0) return receiver[0]; throw A.wrapException(A.StateError$("No elements")); }, elementAt$1(receiver, index) { if (!(index >= 0 && index < receiver.length)) return A.ioore(receiver, index); return receiver[index]; }, $isEfficientLengthIterable: 1, $isJavaScriptIndexingBehavior: 1, $isIterable: 1, $isList: 1 }; A._DomRect.prototype = { toString$0(receiver) { var t2, t3, t4, t1 = receiver.left; t1.toString; t2 = receiver.top; t2.toString; t3 = receiver.width; t3.toString; t4 = receiver.height; t4.toString; return "Rectangle (" + A.S(t1) + ", " + A.S(t2) + ") " + A.S(t3) + " x " + A.S(t4); }, $eq(receiver, other) { var t1, t2; if (other == null) return false; if (type$.Rectangle_num._is(other)) { t1 = receiver.left; t1.toString; t2 = other.left; t2.toString; if (t1 === t2) { t1 = receiver.top; t1.toString; t2 = other.top; t2.toString; if (t1 === t2) { t1 = receiver.width; t1.toString; t2 = J.getInterceptor$x(other); if (t1 === t2.get$width(other)) { t1 = receiver.height; t1.toString; t2 = t1 === t2.get$height(other); t1 = t2; } else t1 = false; } else t1 = false; } else t1 = false; } else t1 = false; return t1; }, get$hashCode(receiver) { var t2, t3, t4, t1 = receiver.left; t1.toString; t2 = receiver.top; t2.toString; t3 = receiver.width; t3.toString; t4 = receiver.height; t4.toString; return A.Object_hash(t1, t2, t3, t4); }, get$_height(receiver) { return receiver.height; }, get$height(receiver) { var t1 = receiver.height; t1.toString; return t1; }, get$_width(receiver) { return receiver.width; }, get$width(receiver) { var t1 = receiver.width; t1.toString; return t1; } }; A._GamepadList.prototype = { get$length(receiver) { return receiver.length; }, $index(receiver, index) { A._asInt(index); if (index >>> 0 !== index || index >= receiver.length) throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); return receiver[index]; }, $indexSet(receiver, index, value) { A._asInt(index); type$.nullable_Gamepad._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, get$first(receiver) { if (receiver.length > 0) return receiver[0]; throw A.wrapException(A.StateError$("No elements")); }, elementAt$1(receiver, index) { if (!(index >= 0 && index < receiver.length)) return A.ioore(receiver, index); return receiver[index]; }, $isEfficientLengthIterable: 1, $isJavaScriptIndexingBehavior: 1, $isIterable: 1, $isList: 1 }; A._NamedNodeMap.prototype = { get$length(receiver) { return receiver.length; }, $index(receiver, index) { A._asInt(index); if (index >>> 0 !== index || index >= receiver.length) throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); return receiver[index]; }, $indexSet(receiver, index, value) { A._asInt(index); type$.Node._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, get$first(receiver) { if (receiver.length > 0) return receiver[0]; throw A.wrapException(A.StateError$("No elements")); }, elementAt$1(receiver, index) { if (!(index >= 0 && index < receiver.length)) return A.ioore(receiver, index); return receiver[index]; }, $isEfficientLengthIterable: 1, $isJavaScriptIndexingBehavior: 1, $isIterable: 1, $isList: 1 }; A._SpeechRecognitionResultList.prototype = { get$length(receiver) { return receiver.length; }, $index(receiver, index) { A._asInt(index); if (index >>> 0 !== index || index >= receiver.length) throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); return receiver[index]; }, $indexSet(receiver, index, value) { A._asInt(index); type$.SpeechRecognitionResult._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, get$first(receiver) { if (receiver.length > 0) return receiver[0]; throw A.wrapException(A.StateError$("No elements")); }, elementAt$1(receiver, index) { if (!(index >= 0 && index < receiver.length)) return A.ioore(receiver, index); return receiver[index]; }, $isEfficientLengthIterable: 1, $isJavaScriptIndexingBehavior: 1, $isIterable: 1, $isList: 1 }; A._StyleSheetList.prototype = { get$length(receiver) { return receiver.length; }, $index(receiver, index) { A._asInt(index); if (index >>> 0 !== index || index >= receiver.length) throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); return receiver[index]; }, $indexSet(receiver, index, value) { A._asInt(index); type$.StyleSheet._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, get$first(receiver) { if (receiver.length > 0) return receiver[0]; throw A.wrapException(A.StateError$("No elements")); }, elementAt$1(receiver, index) { if (!(index >= 0 && index < receiver.length)) return A.ioore(receiver, index); return receiver[index]; }, $isEfficientLengthIterable: 1, $isJavaScriptIndexingBehavior: 1, $isIterable: 1, $isList: 1 }; A.ImmutableListMixin.prototype = { get$iterator(receiver) { return new A.FixedSizeListIterator(receiver, this.get$length(receiver), A.instanceType(receiver)._eval$1("FixedSizeListIterator")); }, setRange$4(receiver, start, end, iterable, skipCount) { A.instanceType(receiver)._eval$1("Iterable")._as(iterable); throw A.wrapException(A.UnsupportedError$("Cannot setRange on immutable List.")); }, fillRange$3(receiver, start, end, fillValue) { A.instanceType(receiver)._eval$1("ImmutableListMixin.E?")._as(fillValue); throw A.wrapException(A.UnsupportedError$("Cannot modify an immutable List.")); } }; A.FixedSizeListIterator.prototype = { moveNext$0() { var _this = this, nextPosition = _this._position + 1, t1 = _this._html$_length; if (nextPosition < t1) { _this.set$_current(J.$index$asx(_this._array, nextPosition)); _this._position = nextPosition; return true; } _this.set$_current(null); _this._position = t1; return false; }, get$current(_) { var t1 = this._current; return t1 == null ? this.$ti._precomputed1._as(t1) : t1; }, set$_current(_current) { this._current = this.$ti._eval$1("1?")._as(_current); }, $isIterator: 1 }; A._DOMWindowCrossFrame.prototype = {$isEventTarget: 1, $isWindowBase: 1}; A._CssStyleDeclaration_JavaScriptObject_CssStyleDeclarationBase.prototype = {}; A._DomRectList_JavaScriptObject_ListMixin.prototype = {}; A._DomRectList_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; A._DomStringList_JavaScriptObject_ListMixin.prototype = {}; A._DomStringList_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; A._FileList_JavaScriptObject_ListMixin.prototype = {}; A._FileList_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; A._HtmlCollection_JavaScriptObject_ListMixin.prototype = {}; A._HtmlCollection_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; A._MidiInputMap_JavaScriptObject_MapMixin.prototype = {}; A._MidiOutputMap_JavaScriptObject_MapMixin.prototype = {}; A._MimeTypeArray_JavaScriptObject_ListMixin.prototype = {}; A._MimeTypeArray_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; A._NodeList_JavaScriptObject_ListMixin.prototype = {}; A._NodeList_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; A._PluginArray_JavaScriptObject_ListMixin.prototype = {}; A._PluginArray_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; A._RtcStatsReport_JavaScriptObject_MapMixin.prototype = {}; A._SourceBufferList_EventTarget_ListMixin.prototype = {}; A._SourceBufferList_EventTarget_ListMixin_ImmutableListMixin.prototype = {}; A._SpeechGrammarList_JavaScriptObject_ListMixin.prototype = {}; A._SpeechGrammarList_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; A._Storage_JavaScriptObject_MapMixin.prototype = {}; A._TextTrackCueList_JavaScriptObject_ListMixin.prototype = {}; A._TextTrackCueList_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; A._TextTrackList_EventTarget_ListMixin.prototype = {}; A._TextTrackList_EventTarget_ListMixin_ImmutableListMixin.prototype = {}; A._TouchList_JavaScriptObject_ListMixin.prototype = {}; A._TouchList_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; A.__CssRuleList_JavaScriptObject_ListMixin.prototype = {}; A.__CssRuleList_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; A.__GamepadList_JavaScriptObject_ListMixin.prototype = {}; A.__GamepadList_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; A.__NamedNodeMap_JavaScriptObject_ListMixin.prototype = {}; A.__NamedNodeMap_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; A.__SpeechRecognitionResultList_JavaScriptObject_ListMixin.prototype = {}; A.__SpeechRecognitionResultList_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; A.__StyleSheetList_JavaScriptObject_ListMixin.prototype = {}; A.__StyleSheetList_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; A._AcceptStructuredClone.prototype = { findSlot$1(value) { var i, t1 = this.values, $length = t1.length; for (i = 0; i < $length; ++i) if (t1[i] === value) return i; B.JSArray_methods.add$1(t1, value); B.JSArray_methods.add$1(this.copies, null); return $length; }, walk$1(e) { var slot, t1, copy, t2, l, $length, i, _this = this, _box_0 = {}; if (e == null) return e; if (A._isBool(e)) return e; if (typeof e == "number") return e; if (typeof e == "string") return e; if (e instanceof Date) return A.DateTime$fromMillisecondsSinceEpoch(e.getTime(), true); if (e instanceof RegExp) throw A.wrapException(A.UnimplementedError$("structured clone of RegExp")); if (typeof Promise != "undefined" && e instanceof Promise) return A.promiseToFuture(e, type$.dynamic); if (A.isJavaScriptSimpleObject(e)) { slot = _this.findSlot$1(e); t1 = _this.copies; if (!(slot < t1.length)) return A.ioore(t1, slot); copy = _box_0.copy = t1[slot]; if (copy != null) return copy; t2 = type$.dynamic; copy = A.LinkedHashMap_LinkedHashMap$_empty(t2, t2); _box_0.copy = copy; B.JSArray_methods.$indexSet(t1, slot, copy); _this.forEachJsField$2(e, new A._AcceptStructuredClone_walk_closure(_box_0, _this)); return _box_0.copy; } if (e instanceof Array) { l = e; slot = _this.findSlot$1(l); t1 = _this.copies; if (!(slot < t1.length)) return A.ioore(t1, slot); copy = t1[slot]; if (copy != null) return copy; t2 = J.getInterceptor$asx(l); $length = t2.get$length(l); copy = _this.mustCopy ? new Array($length) : l; B.JSArray_methods.$indexSet(t1, slot, copy); for (t1 = J.getInterceptor$ax(copy), i = 0; i < $length; ++i) t1.$indexSet(copy, i, _this.walk$1(t2.$index(l, i))); return copy; } return e; } }; A._AcceptStructuredClone_walk_closure.prototype = { call$2(key, value) { var t1 = this._box_0.copy, t2 = this.$this.walk$1(value); J.$indexSet$ax(t1, key, t2); return t2; }, $signature: 20 }; A._AcceptStructuredCloneDart2Js.prototype = { forEachJsField$2(object, action) { var t1, t2, _i, key; type$.dynamic_Function_dynamic_dynamic._as(action); for (t1 = Object.keys(object), t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, A.throwConcurrentModificationError)(t1), ++_i) { key = t1[_i]; action.call$2(key, object[key]); } } }; A.KeyRange.prototype = {$isKeyRange: 1}; A.Request.prototype = {$isRequest: 1}; A.VersionChangeEvent.prototype = { get$target(receiver) { return receiver.target; } }; A._convertToJS_closure.prototype = { call$1(o) { var jsFunction; type$.Function._as(o); jsFunction = function(_call, f, captureThis) { return function() { return _call(f, captureThis, this, Array.prototype.slice.apply(arguments)); }; }(A._callDartFunction, o, false); A._defineProperty(jsFunction, $.$get$DART_CLOSURE_PROPERTY_NAME(), o); return jsFunction; }, $signature: 4 }; A._convertToJS_closure0.prototype = { call$1(o) { return new this.ctor(o); }, $signature: 4 }; A._wrapToDart_closure.prototype = { call$1(o) { return new A.JsFunction(o == null ? type$.Object._as(o) : o); }, $signature: 21 }; A._wrapToDart_closure0.prototype = { call$1(o) { var t1 = o == null ? type$.Object._as(o) : o; return new A.JsArray(t1, type$.JsArray_dynamic); }, $signature: 22 }; A._wrapToDart_closure1.prototype = { call$1(o) { return new A.JsObject(o == null ? type$.Object._as(o) : o); }, $signature: 23 }; A.JsObject.prototype = { $index(_, property) { if (typeof property != "string" && typeof property != "number") throw A.wrapException(A.ArgumentError$("property is not a String or num", null)); return A._convertToDart(this._js$_jsObject[property]); }, $indexSet(_, property, value) { type$.Object._as(property); if (typeof property != "string" && typeof property != "number") throw A.wrapException(A.ArgumentError$("property is not a String or num", null)); this._js$_jsObject[property] = A._convertToJS(value); }, $eq(_, other) { if (other == null) return false; return other instanceof A.JsObject && this._js$_jsObject === other._js$_jsObject; }, toString$0(_) { var t1, exception; try { t1 = String(this._js$_jsObject); return t1; } catch (exception) { t1 = this.super$Object$toString(0); return t1; } }, get$hashCode(_) { return 0; } }; A.JsFunction.prototype = {}; A.JsArray.prototype = { _checkIndex$1(index) { var _this = this, t1 = index < 0 || index >= _this.get$length(_this); if (t1) throw A.wrapException(A.RangeError$range(index, 0, _this.get$length(_this), null, null)); }, $index(_, index) { if (A._isInt(index)) this._checkIndex$1(index); return this.$ti._precomputed1._as(this.super$JsObject$$index(0, index)); }, $indexSet(_, index, value) { type$.Object._as(index); if (A._isInt(index)) this._checkIndex$1(index); this.super$_JsArray_JsObject_ListMixin$$indexSet(0, index, value); }, get$length(_) { var len = this._js$_jsObject.length; if (typeof len === "number" && len >>> 0 === len) return len; throw A.wrapException(A.StateError$("Bad JsArray length")); }, $isEfficientLengthIterable: 1, $isIterable: 1, $isList: 1 }; A._JsArray_JsObject_ListMixin.prototype = { $indexSet(_, property, value) { return this.super$JsObject$$indexSet(0, type$.Object._as(property), value); } }; A._convertDataTree__convert.prototype = { call$1(o) { var convertedMap, t2, key, convertedList, t1 = this._convertedObjects; if (t1.containsKey$1(0, o)) return t1.$index(0, o); if (type$.Map_dynamic_dynamic._is(o)) { convertedMap = {}; t1.$indexSet(0, o, convertedMap); for (t1 = J.getInterceptor$x(o), t2 = J.get$iterator$ax(t1.get$keys(o)); t2.moveNext$0();) { key = t2.get$current(t2); convertedMap[key] = this.call$1(t1.$index(o, key)); } return convertedMap; } else if (type$.Iterable_dynamic._is(o)) { convertedList = []; t1.$indexSet(0, o, convertedList); B.JSArray_methods.addAll$1(convertedList, J.map$1$1$ax(o, this, type$.dynamic)); return convertedList; } else return o; }, $signature: 24 }; A.NullRejectionException.prototype = { toString$0(_) { return "Promise was rejected with a value of `" + (this.isUndefined ? "undefined" : "null") + "`."; } }; A.promiseToFuture_closure.prototype = { call$1(r) { return this.completer.complete$1(0, this.T._eval$1("0/?")._as(r)); }, $signature: 5 }; A.promiseToFuture_closure0.prototype = { call$1(e) { if (e == null) return this.completer.completeError$1(new A.NullRejectionException(e === undefined)); return this.completer.completeError$1(e); }, $signature: 5 }; A.Length.prototype = {$isLength: 1}; A.LengthList.prototype = { get$length(receiver) { return receiver.length; }, $index(receiver, index) { A._asInt(index); if (index >>> 0 !== index || index >= receiver.length) throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); return receiver.getItem(index); }, $indexSet(receiver, index, value) { A._asInt(index); type$.Length._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, get$first(receiver) { if (receiver.length > 0) return receiver[0]; throw A.wrapException(A.StateError$("No elements")); }, elementAt$1(receiver, index) { return this.$index(receiver, index); }, $isEfficientLengthIterable: 1, $isIterable: 1, $isList: 1 }; A.Number.prototype = {$isNumber: 1}; A.NumberList.prototype = { get$length(receiver) { return receiver.length; }, $index(receiver, index) { A._asInt(index); if (index >>> 0 !== index || index >= receiver.length) throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); return receiver.getItem(index); }, $indexSet(receiver, index, value) { A._asInt(index); type$.Number._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, get$first(receiver) { if (receiver.length > 0) return receiver[0]; throw A.wrapException(A.StateError$("No elements")); }, elementAt$1(receiver, index) { return this.$index(receiver, index); }, $isEfficientLengthIterable: 1, $isIterable: 1, $isList: 1 }; A.PointList.prototype = { get$length(receiver) { return receiver.length; } }; A.StringList.prototype = { get$length(receiver) { return receiver.length; }, $index(receiver, index) { A._asInt(index); if (index >>> 0 !== index || index >= receiver.length) throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); return receiver.getItem(index); }, $indexSet(receiver, index, value) { A._asInt(index); A._asString(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, get$first(receiver) { if (receiver.length > 0) return receiver[0]; throw A.wrapException(A.StateError$("No elements")); }, elementAt$1(receiver, index) { return this.$index(receiver, index); }, $isEfficientLengthIterable: 1, $isIterable: 1, $isList: 1 }; A.Transform.prototype = {$isTransform: 1}; A.TransformList.prototype = { get$length(receiver) { return receiver.length; }, $index(receiver, index) { A._asInt(index); if (index >>> 0 !== index || index >= receiver.length) throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); return receiver.getItem(index); }, $indexSet(receiver, index, value) { A._asInt(index); type$.Transform._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, get$first(receiver) { if (receiver.length > 0) return receiver[0]; throw A.wrapException(A.StateError$("No elements")); }, elementAt$1(receiver, index) { return this.$index(receiver, index); }, $isEfficientLengthIterable: 1, $isIterable: 1, $isList: 1 }; A._LengthList_JavaScriptObject_ListMixin.prototype = {}; A._LengthList_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; A._NumberList_JavaScriptObject_ListMixin.prototype = {}; A._NumberList_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; A._StringList_JavaScriptObject_ListMixin.prototype = {}; A._StringList_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; A._TransformList_JavaScriptObject_ListMixin.prototype = {}; A._TransformList_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; A.AudioBuffer.prototype = { get$length(receiver) { return receiver.length; } }; A.AudioParamMap.prototype = { $index(receiver, key) { return A.convertNativeToDart_Dictionary(receiver.get(A._asString(key))); }, forEach$1(receiver, f) { var entries, entry; type$.void_Function_String_dynamic._as(f); entries = receiver.entries(); for (; true;) { entry = entries.next(); if (entry.done) return; f.call$2(entry.value[0], A.convertNativeToDart_Dictionary(entry.value[1])); } }, get$keys(receiver) { var keys = A._setArrayType([], type$.JSArray_String); this.forEach$1(receiver, new A.AudioParamMap_keys_closure(keys)); return keys; }, get$length(receiver) { return receiver.size; }, get$isEmpty(receiver) { return receiver.size === 0; }, $indexSet(receiver, key, value) { A._asString(key); throw A.wrapException(A.UnsupportedError$("Not supported")); }, $isMap: 1 }; A.AudioParamMap_keys_closure.prototype = { call$2(k, v) { return B.JSArray_methods.add$1(this.keys, k); }, $signature: 3 }; A.AudioTrackList.prototype = { get$length(receiver) { return receiver.length; } }; A.BaseAudioContext.prototype = {}; A.OfflineAudioContext.prototype = { get$length(receiver) { return receiver.length; } }; A._AudioParamMap_JavaScriptObject_MapMixin.prototype = {}; A.ArchiveException.prototype = {}; A.InputStreamBase.prototype = {}; A.InputStream.prototype = { get$length(_) { return A._lateReadCheck(this.__InputStream__length, "_length") - (this.offset - this.start); }, get$isEOS() { return this.offset >= this.start + A._lateReadCheck(this.__InputStream__length, "_length"); }, $index(_, index) { A._asInt(index); return J.$index$asx(this.buffer, B.JSInt_methods.$add(this.offset, index)); }, readByte$0() { var t1 = this.buffer, t2 = this.offset++; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); return t1[t2]; }, readBytes$1(count) { var _this = this, t1 = _this.start, position = _this.offset - t1 + t1, $length = count < 0 ? A._lateReadCheck(_this.__InputStream__length, "_length") - (position - t1) : count, bytes = A.InputStream$(_this.buffer, _this.byteOrder, $length, position); _this.offset = _this.offset + bytes.get$length(bytes); return bytes; }, readUint32$0() { var b1, b2, b3, b4, _this = this, t1 = _this.buffer, t2 = _this.offset, t3 = _this.offset = t2 + 1, t4 = t1.length; if (!(t2 >= 0 && t2 < t4)) return A.ioore(t1, t2); t2 = t1[t2]; if (typeof t2 !== "number") return t2.$and(); b1 = t2 & 255; t2 = _this.offset = t3 + 1; if (!(t3 >= 0 && t3 < t4)) return A.ioore(t1, t3); t3 = t1[t3]; if (typeof t3 !== "number") return t3.$and(); b2 = t3 & 255; t3 = _this.offset = t2 + 1; if (!(t2 >= 0 && t2 < t4)) return A.ioore(t1, t2); t2 = t1[t2]; if (typeof t2 !== "number") return t2.$and(); b3 = t2 & 255; _this.offset = t3 + 1; if (!(t3 >= 0 && t3 < t4)) return A.ioore(t1, t3); t3 = t1[t3]; if (typeof t3 !== "number") return t3.$and(); b4 = t3 & 255; if (_this.byteOrder === 1) return (b1 << 24 | b2 << 16 | b3 << 8 | b4) >>> 0; return (b4 << 24 | b3 << 16 | b2 << 8 | b1) >>> 0; }, toUint8List$0() { var t2, t3, end, end0, _this = this, len = _this.get$length(_this), t1 = _this.buffer; if (type$.Uint8List._is(t1)) { t2 = _this.offset; t3 = t1.length; if (t2 + len > t3) len = t3 - t2; return A.NativeUint8List_NativeUint8List$view(t1.buffer, t1.byteOffset + t2, len); } t2 = _this.offset; end = t2 + len; end0 = t1.length; return new Uint8Array(A._ensureNativeList(J.sublist$2$ax(t1, t2, end > end0 ? end0 : end))); } }; A.OutputStreamBase.prototype = {}; A.OutputStream.prototype = { writeByte$1(value) { var t1, t2, _this = this; if (_this.length === _this._output_stream$_buffer.length) _this._output_stream$_expandBuffer$0(); t1 = _this._output_stream$_buffer; t2 = _this.length++; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); t1[t2] = value & 255; }, writeBytes$2(bytes, len) { var t1, t2, t3, t4, _this = this; type$.List_int._as(bytes); if (len == null) len = bytes.length; for (; t1 = _this.length, t2 = t1 + len, t3 = _this._output_stream$_buffer, t4 = t3.length, t2 > t4;) _this._output_stream$_expandBuffer$1(t2 - t4); B.NativeUint8List_methods.setRange$3(t3, t1, t2, bytes); _this.length += len; }, writeBytes$1(bytes) { return this.writeBytes$2(bytes, null); }, writeInputStream$1(stream) { var t1, t2, t3, t4, t5, _this = this; for (t1 = stream.start; t2 = _this.length, t3 = A._lateReadCheck(stream.__InputStream__length, "_length"), t4 = stream.offset, t5 = _this._output_stream$_buffer, t2 + (t3 - (t4 - t1)) > t5.length;) _this._output_stream$_expandBuffer$1(_this.length + (A._lateReadCheck(stream.__InputStream__length, "_length") - (stream.offset - t1)) - _this._output_stream$_buffer.length); t1 = _this.length; B.NativeUint8List_methods.setRange$4(t5, t1, t1 + stream.get$length(stream), stream.buffer, stream.offset); _this.length = _this.length + stream.get$length(stream); }, writeUint32$1(value) { var _this = this; if (_this.byteOrder === 1) { _this.writeByte$1(value >>> 24 & 255); _this.writeByte$1(value >>> 16 & 255); _this.writeByte$1(value >>> 8 & 255); _this.writeByte$1(value & 255); return; } _this.writeByte$1(value & 255); _this.writeByte$1(value >>> 8 & 255); _this.writeByte$1(value >>> 16 & 255); _this.writeByte$1(value >>> 24 & 255); }, subset$2(start, end) { var _this = this; if (start < 0) start = _this.length + start; if (end == null) end = _this.length; else if (end < 0) end = _this.length + end; return A.NativeUint8List_NativeUint8List$view(_this._output_stream$_buffer.buffer, start, end - start); }, subset$1(start) { return this.subset$2(start, null); }, _output_stream$_expandBuffer$1(required) { var blockSize = required != null ? required > 32768 ? required : 32768 : 32768, t1 = this._output_stream$_buffer, t2 = t1.length, newBuffer = new Uint8Array((t2 + blockSize) * 2); B.NativeUint8List_methods.setRange$3(newBuffer, 0, t2, t1); this._output_stream$_buffer = newBuffer; }, _output_stream$_expandBuffer$0() { return this._output_stream$_expandBuffer$1(null); }, get$length(receiver) { return this.length; } }; A._ZLibDecoder.prototype = { decodeBuffer$2$verify(input, verify) { var t1, t2, t3, buffer, cmf = input.readByte$0(), flg = input.readByte$0(), method = cmf & 8; B.JSInt_methods._shrOtherPositive$1(cmf, 3); if (method !== 8) throw A.wrapException(A.ArchiveException$("Only DEFLATE compression supported: " + method)); if (B.JSInt_methods.$mod((cmf << 8 >>> 0) + flg, 31) !== 0) throw A.wrapException(A.ArchiveException$("Invalid FCHECK")); if ((flg >>> 5 & 1) !== 0) { input.readUint32$0(); throw A.wrapException(A.ArchiveException$("FDICT Encoding not currently supported")); } t1 = A.HuffmanTable$(B.List_2Bc); t2 = A.HuffmanTable$(B.List_X3d); t3 = A.OutputStream$(0, null); t2 = new A.Inflate(input, t3, t1, t2); t2.inputSet = true; t2._inflate$0(); buffer = type$.List_int._as(A.NativeUint8List_NativeUint8List$view(t3._output_stream$_buffer.buffer, 0, t3.length)); input.readUint32$0(); return buffer; } }; A.Deflate.prototype = { _deflate$1(flush) { var t1, bstate, i, _this = this; if (flush > 4 || false) throw A.wrapException(A.ArchiveException$("Invalid Deflate Parameter")); if (A._lateReadCheck(_this.__Deflate__pending, "_pending") !== 0) _this._flushPending$0(); if (_this._deflate$_input.get$isEOS()) if (A._lateReadCheck(_this.__Deflate__lookAhead, "_lookAhead") === 0) t1 = flush !== 0 && _this._status !== 666; else t1 = true; else t1 = true; if (t1) { switch ($.Deflate____config._readField$0().$function) { case 0: bstate = _this._deflateStored$1(flush); break; case 1: bstate = _this._deflateFast$1(flush); break; case 2: bstate = _this._deflateSlow$1(flush); break; default: bstate = -1; break; } t1 = bstate === 2; if (t1 || bstate === 3) _this._status = 666; if (bstate === 0 || t1) return 0; if (bstate === 1) { if (flush === 1) { _this._sendBits$2(2, 3); _this._sendCode$2(256, B.List_Xg4); _this.biFlush$0(); if (1 + A._lateReadCheck(_this.__Deflate__lastEOBLen, "_lastEOBLen") + 10 - A._lateReadCheck(_this.__Deflate__numValidBits, "_numValidBits") < 9) { _this._sendBits$2(2, 3); _this._sendCode$2(256, B.List_Xg4); _this.biFlush$0(); } _this.__Deflate__lastEOBLen = 7; } else { _this._trStoredBlock$3(0, 0, false); if (flush === 3) for (i = 0; i < A._lateReadCheck(_this.__Deflate__hashSize, "_hashSize"); ++i) { t1 = A._lateReadCheck(_this.__Deflate__head, "_head"); if (!(i < t1.length)) return A.ioore(t1, i); t1[i] = 0; } } _this._flushPending$0(); } } if (flush !== 4) return 0; return 1; }, _lmInit$0() { var t1, t2, i, _this = this, _s9_ = "_hashSize"; _this.__Deflate__actualWindowSize = 2 * A._lateReadCheck(_this.__Deflate__windowSize, "_windowSize"); t1 = A._lateReadCheck(_this.__Deflate__head, "_head"); t2 = A._lateReadCheck(_this.__Deflate__hashSize, _s9_) - 1; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); t1[t2] = 0; for (i = 0; i < A._lateReadCheck(_this.__Deflate__hashSize, _s9_) - 1; ++i) { t1 = A._lateReadCheck(_this.__Deflate__head, "_head"); if (!(i < t1.length)) return A.ioore(t1, i); t1[i] = 0; } _this.__Deflate__lookAhead = _this.__Deflate__blockStart = _this.__Deflate__strStart = 0; _this.__Deflate__matchLength = _this.__Deflate__prevLength = 2; _this.__Deflate__insertHash = _this.__Deflate__matchAvailable = 0; }, _initBlock$0() { var i, t1, t2, _this = this, _s18_ = "_dynamicLengthTree"; for (i = 0; i < 286; ++i) { t1 = A._lateReadCheck(_this.__Deflate__dynamicLengthTree, _s18_); t2 = i * 2; if (!(t2 < t1.length)) return A.ioore(t1, t2); t1[t2] = 0; } for (i = 0; i < 30; ++i) { t1 = A._lateReadCheck(_this.__Deflate__dynamicDistTree, "_dynamicDistTree"); t2 = i * 2; if (!(t2 < t1.length)) return A.ioore(t1, t2); t1[t2] = 0; } for (i = 0; i < 19; ++i) { t1 = A._lateReadCheck(_this.__Deflate__bitLengthTree, "_bitLengthTree"); t2 = i * 2; if (!(t2 < t1.length)) return A.ioore(t1, t2); t1[t2] = 0; } t1 = A._lateReadCheck(_this.__Deflate__dynamicLengthTree, _s18_); if (512 >= t1.length) return A.ioore(t1, 512); t1[512] = 1; _this.__Deflate__lastLit = _this.__Deflate__matches = _this.__Deflate__optimalLen = _this.__Deflate__staticLen = 0; }, _pqdownheap$2(tree, k) { var v, j, t2, t3, j0, _this = this, _s8_ = "_heapLen", t1 = _this._heap; if (!(k >= 0 && k < 573)) return A.ioore(t1, k); v = t1[k]; j = k << 1 >>> 0; for (t2 = _this._depth; j <= A._lateReadCheck(_this.__Deflate__heapLen, _s8_); k = j, j = j0) { if (j < A._lateReadCheck(_this.__Deflate__heapLen, _s8_)) { t3 = j + 1; if (!(t3 >= 0 && t3 < 573)) return A.ioore(t1, t3); t3 = t1[t3]; if (!(j >= 0 && j < 573)) return A.ioore(t1, j); t3 = A.Deflate__smaller(tree, t3, t1[j], t2); } else t3 = false; if (t3) ++j; if (!(j >= 0 && j < 573)) return A.ioore(t1, j); if (A.Deflate__smaller(tree, v, t1[j], t2)) break; t3 = t1[j]; if (!(k >= 0 && k < 573)) return A.ioore(t1, k); t1[k] = t3; j0 = j << 1 >>> 0; } if (!(k >= 0 && k < 573)) return A.ioore(t1, k); t1[k] = v; }, _scanTree$2(tree, maxCode) { var nextLen, maxCount, minCount, t2, n, prevLen, count, nextLen0, t3, t4, _this = this, _s14_ = "_bitLengthTree", t1 = tree.length; if (1 >= t1) return A.ioore(tree, 1); nextLen = tree[1]; if (nextLen === 0) { maxCount = 138; minCount = 3; } else { maxCount = 7; minCount = 4; } t2 = (maxCode + 1) * 2 + 1; if (!(t2 >= 0 && t2 < t1)) return A.ioore(tree, t2); tree[t2] = 65535; for (n = 0, prevLen = -1, count = 0; n <= maxCode; nextLen = nextLen0) { ++n; t2 = n * 2 + 1; if (!(t2 < t1)) return A.ioore(tree, t2); nextLen0 = tree[t2]; ++count; if (count < maxCount && nextLen === nextLen0) continue; else if (count < minCount) { t2 = A._lateReadCheck(_this.__Deflate__bitLengthTree, _s14_); t3 = nextLen * 2; t4 = A._lateReadCheck(_this.__Deflate__bitLengthTree, _s14_); if (!(t3 < t4.length)) return A.ioore(t4, t3); t4 = t4[t3]; if (!(t3 < t2.length)) return A.ioore(t2, t3); t2[t3] = t4 + count; } else if (nextLen !== 0) { if (nextLen !== prevLen) { t2 = A._lateReadCheck(_this.__Deflate__bitLengthTree, _s14_); t3 = nextLen * 2; if (!(t3 < t2.length)) return A.ioore(t2, t3); t2[t3] = t2[t3] + 1; } t2 = A._lateReadCheck(_this.__Deflate__bitLengthTree, _s14_); if (32 >= t2.length) return A.ioore(t2, 32); t2[32] = t2[32] + 1; } else { t2 = _this.__Deflate__bitLengthTree; if (count <= 10) { t2 = A._lateReadCheck(t2, _s14_); if (34 >= t2.length) return A.ioore(t2, 34); t2[34] = t2[34] + 1; } else { t2 = A._lateReadCheck(t2, _s14_); if (36 >= t2.length) return A.ioore(t2, 36); t2[36] = t2[36] + 1; } } if (nextLen0 === 0) { maxCount = 138; minCount = 3; } else if (nextLen === nextLen0) { maxCount = 6; minCount = 3; } else { maxCount = 7; minCount = 4; } prevLen = nextLen; count = 0; } }, _buildBitLengthTree$0() { var maxBLIndex, t1, t2, _this = this; _this._scanTree$2(A._lateReadCheck(_this.__Deflate__dynamicLengthTree, "_dynamicLengthTree"), A._lateReadCheck(_this._lDesc.___HuffmanTree_maxCode, "maxCode")); _this._scanTree$2(A._lateReadCheck(_this.__Deflate__dynamicDistTree, "_dynamicDistTree"), A._lateReadCheck(_this._dDesc.___HuffmanTree_maxCode, "maxCode")); _this._blDesc._buildTree$1(_this); for (maxBLIndex = 18; maxBLIndex >= 3; --maxBLIndex) { t1 = A._lateReadCheck(_this.__Deflate__bitLengthTree, "_bitLengthTree"); t2 = B.List_uSC[maxBLIndex] * 2 + 1; if (!(t2 < t1.length)) return A.ioore(t1, t2); if (t1[t2] !== 0) break; } _this.__Deflate__optimalLen = A._lateReadCheck(_this.__Deflate__optimalLen, "_optimalLen") + (3 * (maxBLIndex + 1) + 5 + 5 + 4); return maxBLIndex; }, _sendAllTrees$3(lcodes, dcodes, blcodes) { var t1, rank, t2, t3, _this = this; _this._sendBits$2(lcodes - 257, 5); t1 = dcodes - 1; _this._sendBits$2(t1, 5); _this._sendBits$2(blcodes - 4, 4); for (rank = 0; rank < blcodes; ++rank) { t2 = A._lateReadCheck(_this.__Deflate__bitLengthTree, "_bitLengthTree"); if (!(rank < 19)) return A.ioore(B.List_uSC, rank); t3 = B.List_uSC[rank] * 2 + 1; if (!(t3 < t2.length)) return A.ioore(t2, t3); _this._sendBits$2(t2[t3], 3); } _this._sendTree$2(A._lateReadCheck(_this.__Deflate__dynamicLengthTree, "_dynamicLengthTree"), lcodes - 1); _this._sendTree$2(A._lateReadCheck(_this.__Deflate__dynamicDistTree, "_dynamicDistTree"), t1); }, _sendTree$2(tree, maxCode) { var nextLen, maxCount, minCount, t2, n, prevLen, count, t3, nextLen0, t4, t5, t6, t7, _this = this, _s14_ = "_bitLengthTree", t1 = tree.length; if (1 >= t1) return A.ioore(tree, 1); nextLen = tree[1]; if (nextLen === 0) { maxCount = 138; minCount = 3; } else { maxCount = 7; minCount = 4; } for (t2 = type$.List_int, n = 0, prevLen = -1, count = 0; n <= maxCode; nextLen = nextLen0) { ++n; t3 = n * 2 + 1; if (!(t3 < t1)) return A.ioore(tree, t3); nextLen0 = tree[t3]; ++count; if (count < maxCount && nextLen === nextLen0) continue; else if (count < minCount) { t3 = nextLen * 2; t4 = t3 + 1; do { t5 = t2._as(A._lateReadCheck(_this.__Deflate__bitLengthTree, _s14_)); t6 = t5.length; if (!(t3 < t6)) return A.ioore(t5, t3); t7 = t5[t3]; if (!(t4 < t6)) return A.ioore(t5, t4); _this._sendBits$2(t7 & 65535, t5[t4] & 65535); } while (--count, count !== 0); } else if (nextLen !== 0) { if (nextLen !== prevLen) { t3 = t2._as(A._lateReadCheck(_this.__Deflate__bitLengthTree, _s14_)); t4 = nextLen * 2; t5 = t3.length; if (!(t4 < t5)) return A.ioore(t3, t4); t6 = t3[t4]; ++t4; if (!(t4 < t5)) return A.ioore(t3, t4); _this._sendBits$2(t6 & 65535, t3[t4] & 65535); --count; } t3 = t2._as(A._lateReadCheck(_this.__Deflate__bitLengthTree, _s14_)); t4 = t3.length; if (32 >= t4) return A.ioore(t3, 32); t5 = t3[32]; if (33 >= t4) return A.ioore(t3, 33); _this._sendBits$2(t5 & 65535, t3[33] & 65535); _this._sendBits$2(count - 3, 2); } else { t3 = _this.__Deflate__bitLengthTree; if (count <= 10) { t3 = t2._as(A._lateReadCheck(t3, _s14_)); t4 = t3.length; if (34 >= t4) return A.ioore(t3, 34); t5 = t3[34]; if (35 >= t4) return A.ioore(t3, 35); _this._sendBits$2(t5 & 65535, t3[35] & 65535); _this._sendBits$2(count - 3, 3); } else { t3 = t2._as(A._lateReadCheck(t3, _s14_)); t4 = t3.length; if (36 >= t4) return A.ioore(t3, 36); t5 = t3[36]; if (37 >= t4) return A.ioore(t3, 37); _this._sendBits$2(t5 & 65535, t3[37] & 65535); _this._sendBits$2(count - 11, 7); } } if (nextLen0 === 0) { maxCount = 138; minCount = 3; } else if (nextLen === nextLen0) { maxCount = 6; minCount = 3; } else { maxCount = 7; minCount = 4; } prevLen = nextLen; count = 0; } }, _putBytes$3(p, start, len) { var _this = this, _s8_ = "_pending"; if (len === 0) return; B.NativeUint8List_methods.setRange$4(A._lateReadCheck(_this.__Deflate__pendingBuffer, "_pendingBuffer"), A._lateReadCheck(_this.__Deflate__pending, _s8_), A._lateReadCheck(_this.__Deflate__pending, _s8_) + len, p, start); _this.__Deflate__pending = A._lateReadCheck(_this.__Deflate__pending, _s8_) + len; }, _putByte$1(c) { var t1 = A._lateReadCheck(this.__Deflate__pendingBuffer, "_pendingBuffer"), t2 = A._lateReadCheck(this.__Deflate__pending, "_pending"); this.__Deflate__pending = t2 + 1; if (t2 >>> 0 !== t2 || t2 >= t1.length) return A.ioore(t1, t2); t1[t2] = c; }, _sendCode$2(c, tree) { var t1, t2, t3; type$.List_int._as(tree); t1 = c * 2; t2 = tree.length; if (!(t1 < t2)) return A.ioore(tree, t1); t3 = tree[t1]; ++t1; if (!(t1 < t2)) return A.ioore(tree, t1); this._sendBits$2(t3 & 65535, tree[t1] & 65535); }, _sendBits$2(valueRenamed, $length) { var _this = this, _s13_ = "_numValidBits", _s10_ = "_bitBuffer", t1 = A._lateReadCheck(_this.__Deflate__numValidBits, _s13_), t2 = _this.__Deflate__bitBuffer; if (t1 > 16 - $length) { t1 = (A._lateReadCheck(t2, _s10_) | B.JSInt_methods.$shl(valueRenamed, A._lateReadCheck(_this.__Deflate__numValidBits, _s13_)) & 65535) >>> 0; _this.__Deflate__bitBuffer = t1; t1 = A._lateReadCheck(t1, _s10_); _this._putByte$1(t1); _this._putByte$1(A._rshift(t1, 8)); _this.__Deflate__bitBuffer = A._rshift(valueRenamed, 16 - A._lateReadCheck(_this.__Deflate__numValidBits, _s13_)); _this.__Deflate__numValidBits = A._lateReadCheck(_this.__Deflate__numValidBits, _s13_) + ($length - 16); } else { _this.__Deflate__bitBuffer = (A._lateReadCheck(t2, _s10_) | B.JSInt_methods.$shl(valueRenamed, A._lateReadCheck(_this.__Deflate__numValidBits, _s13_)) & 65535) >>> 0; _this.__Deflate__numValidBits = A._lateReadCheck(_this.__Deflate__numValidBits, _s13_) + $length; } }, _trTally$2(dist, lc) { var outLength, dcode, t4, _this = this, _s14_ = "_pendingBuffer", _s8_ = "_lastLit", _s18_ = "_dynamicLengthTree", _s8_0 = "_matches", _s16_ = "_dynamicDistTree", t1 = A._lateReadCheck(_this.__Deflate__pendingBuffer, _s14_), t2 = A._lateReadCheck(_this.__Deflate__dbuf, "_dbuf") + A._lateReadCheck(_this.__Deflate__lastLit, _s8_) * 2, t3 = A._rshift(dist, 8); if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); t1[t2] = t3; t3 = A._lateReadCheck(_this.__Deflate__pendingBuffer, _s14_); t2 = A._lateReadCheck(_this.__Deflate__dbuf, "_dbuf") + A._lateReadCheck(_this.__Deflate__lastLit, _s8_) * 2 + 1; if (!(t2 >= 0 && t2 < t3.length)) return A.ioore(t3, t2); t3[t2] = dist; t2 = A._lateReadCheck(_this.__Deflate__pendingBuffer, _s14_); t3 = A._lateReadCheck(_this.__Deflate__lbuf, "_lbuf") + A._lateReadCheck(_this.__Deflate__lastLit, _s8_); if (!(t3 >= 0 && t3 < t2.length)) return A.ioore(t2, t3); t2[t3] = lc; _this.__Deflate__lastLit = A._lateReadCheck(_this.__Deflate__lastLit, _s8_) + 1; if (dist === 0) { t1 = A._lateReadCheck(_this.__Deflate__dynamicLengthTree, _s18_); t2 = lc * 2; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); t1[t2] = t1[t2] + 1; } else { _this.__Deflate__matches = A._lateReadCheck(_this.__Deflate__matches, _s8_0) + 1; t1 = A._lateReadCheck(_this.__Deflate__dynamicLengthTree, _s18_); if (!(lc >= 0 && lc < 256)) return A.ioore(B.List_NUU, lc); t2 = (B.List_NUU[lc] + 256 + 1) * 2; if (!(t2 < t1.length)) return A.ioore(t1, t2); t1[t2] = t1[t2] + 1; t2 = A._lateReadCheck(_this.__Deflate__dynamicDistTree, _s16_); t1 = A._HuffmanTree__dCode(dist - 1) * 2; if (!(t1 < t2.length)) return A.ioore(t2, t1); t2[t1] = t2[t1] + 1; } if ((A._lateReadCheck(_this.__Deflate__lastLit, _s8_) & 8191) === 0 && A._lateReadCheck(_this.__Deflate__level, "_level") > 2) { outLength = A._lateReadCheck(_this.__Deflate__lastLit, _s8_) * 8; t1 = A._lateReadCheck(_this.__Deflate__strStart, "_strStart"); t2 = A._lateReadCheck(_this.__Deflate__blockStart, "_blockStart"); for (dcode = 0; dcode < 30; ++dcode) { t3 = A._lateReadCheck(_this.__Deflate__dynamicDistTree, _s16_); t4 = dcode * 2; if (!(t4 < t3.length)) return A.ioore(t3, t4); outLength += t3[t4] * (5 + B.List_X3d0[dcode]); } outLength = A._rshift(outLength, 3); if (A._lateReadCheck(_this.__Deflate__matches, _s8_0) < A._lateReadCheck(_this.__Deflate__lastLit, _s8_) / 2 && outLength < (t1 - t2) / 2) return true; } return A._lateReadCheck(_this.__Deflate__lastLit, _s8_) === A._lateReadCheck(_this.__Deflate__litBufferSize, "_litBufferSize") - 1; }, _compressBlock$2(ltree, dtree) { var lx, t2, t3, dist, lc, code, extra, _this = this, _s8_ = "_lastLit", _s14_ = "_pendingBuffer", t1 = type$.List_int; t1._as(ltree); t1._as(dtree); if (A._lateReadCheck(_this.__Deflate__lastLit, _s8_) !== 0) { lx = 0; do { t1 = A._lateReadCheck(_this.__Deflate__pendingBuffer, _s14_); t2 = lx * 2; t3 = A._lateReadCheck(_this.__Deflate__dbuf, "_dbuf") + t2; if (!(t3 >= 0 && t3 < t1.length)) return A.ioore(t1, t3); t3 = t1[t3]; t1 = A._lateReadCheck(_this.__Deflate__pendingBuffer, _s14_); t2 = A._lateReadCheck(_this.__Deflate__dbuf, "_dbuf") + t2 + 1; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); dist = t3 << 8 & 65280 | t1[t2] & 255; t2 = A._lateReadCheck(_this.__Deflate__pendingBuffer, _s14_); t1 = A._lateReadCheck(_this.__Deflate__lbuf, "_lbuf") + lx; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); lc = t2[t1] & 255; ++lx; if (dist === 0) _this._sendCode$2(lc, ltree); else { code = B.List_NUU[lc]; _this._sendCode$2(code + 256 + 1, ltree); if (!(code < 29)) return A.ioore(B.List_qQn0, code); extra = B.List_qQn0[code]; if (extra !== 0) _this._sendBits$2(lc - B.List_qQn1[code], extra); --dist; code = A._HuffmanTree__dCode(dist); _this._sendCode$2(code, dtree); if (!(code < 30)) return A.ioore(B.List_X3d0, code); extra = B.List_X3d0[code]; if (extra !== 0) _this._sendBits$2(dist - B.List_X3d1[code], extra); } } while (lx < A._lateReadCheck(_this.__Deflate__lastLit, _s8_)); } _this._sendCode$2(256, ltree); if (513 >= ltree.length) return A.ioore(ltree, 513); _this.__Deflate__lastEOBLen = ltree[513]; }, setDataType$0() { var n, binFreq, t1, t2, asciiFreq, _this = this, _s18_ = "_dynamicLengthTree"; for (n = 0, binFreq = 0; n < 7;) { t1 = A._lateReadCheck(_this.__Deflate__dynamicLengthTree, _s18_); t2 = n * 2; if (!(t2 < t1.length)) return A.ioore(t1, t2); binFreq += t1[t2]; ++n; } for (asciiFreq = 0; n < 128;) { t1 = A._lateReadCheck(_this.__Deflate__dynamicLengthTree, _s18_); t2 = n * 2; if (!(t2 < t1.length)) return A.ioore(t1, t2); asciiFreq += t1[t2]; ++n; } for (; n < 256;) { t1 = A._lateReadCheck(_this.__Deflate__dynamicLengthTree, _s18_); t2 = n * 2; if (!(t2 < t1.length)) return A.ioore(t1, t2); binFreq += t1[t2]; ++n; } _this._dataType = binFreq > A._rshift(asciiFreq, 2) ? 0 : 1; }, biFlush$0() { var t1, _this = this, _s13_ = "_numValidBits", _s10_ = "_bitBuffer"; if (A._lateReadCheck(_this.__Deflate__numValidBits, _s13_) === 16) { t1 = A._lateReadCheck(_this.__Deflate__bitBuffer, _s10_); _this._putByte$1(t1); _this._putByte$1(A._rshift(t1, 8)); _this.__Deflate__numValidBits = _this.__Deflate__bitBuffer = 0; } else if (A._lateReadCheck(_this.__Deflate__numValidBits, _s13_) >= 8) { _this._putByte$1(A._lateReadCheck(_this.__Deflate__bitBuffer, _s10_)); _this.__Deflate__bitBuffer = A._rshift(A._lateReadCheck(_this.__Deflate__bitBuffer, _s10_), 8); _this.__Deflate__numValidBits = A._lateReadCheck(_this.__Deflate__numValidBits, _s13_) - 8; } }, _biWindup$0() { var t1, _this = this, _s13_ = "_numValidBits", _s10_ = "_bitBuffer"; if (A._lateReadCheck(_this.__Deflate__numValidBits, _s13_) > 8) { t1 = A._lateReadCheck(_this.__Deflate__bitBuffer, _s10_); _this._putByte$1(t1); _this._putByte$1(A._rshift(t1, 8)); } else if (A._lateReadCheck(_this.__Deflate__numValidBits, _s13_) > 0) _this._putByte$1(A._lateReadCheck(_this.__Deflate__bitBuffer, _s10_)); _this.__Deflate__numValidBits = _this.__Deflate__bitBuffer = 0; }, _flushBlockOnly$1(eof) { var maxBlIndex, optLenb, staticLenb, _this = this, _s11_ = "_blockStart", _s9_ = "_strStart", t1 = A._lateReadCheck(_this.__Deflate__blockStart, _s11_) >= 0 ? A._lateReadCheck(_this.__Deflate__blockStart, _s11_) : -1, t2 = A._lateReadCheck(_this.__Deflate__strStart, _s9_) - A._lateReadCheck(_this.__Deflate__blockStart, _s11_); if (A._lateReadCheck(_this.__Deflate__level, "_level") > 0) { if (_this._dataType === 2) _this.setDataType$0(); _this._lDesc._buildTree$1(_this); _this._dDesc._buildTree$1(_this); maxBlIndex = _this._buildBitLengthTree$0(); optLenb = A._rshift(A._lateReadCheck(_this.__Deflate__optimalLen, "_optimalLen") + 3 + 7, 3); staticLenb = A._rshift(A._lateReadCheck(_this.__Deflate__staticLen, "_staticLen") + 3 + 7, 3); if (staticLenb <= optLenb) optLenb = staticLenb; } else { staticLenb = t2 + 5; optLenb = staticLenb; maxBlIndex = 0; } if (t2 + 4 <= optLenb && t1 !== -1) _this._trStoredBlock$3(t1, t2, eof); else if (staticLenb === optLenb) { _this._sendBits$2(2 + (eof ? 1 : 0), 3); _this._compressBlock$2(B.List_Xg4, B.List_iYO); } else { _this._sendBits$2(4 + (eof ? 1 : 0), 3); _this._sendAllTrees$3(A._lateReadCheck(_this._lDesc.___HuffmanTree_maxCode, "maxCode") + 1, A._lateReadCheck(_this._dDesc.___HuffmanTree_maxCode, "maxCode") + 1, maxBlIndex + 1); _this._compressBlock$2(A._lateReadCheck(_this.__Deflate__dynamicLengthTree, "_dynamicLengthTree"), A._lateReadCheck(_this.__Deflate__dynamicDistTree, "_dynamicDistTree")); } _this._initBlock$0(); if (eof) _this._biWindup$0(); _this.__Deflate__blockStart = A._lateReadCheck(_this.__Deflate__strStart, _s9_); _this._flushPending$0(); }, _deflateStored$1(flush) { var t1, maxStart, _this = this, _s18_ = "_pendingBufferSize", _s10_ = "_lookAhead", _s9_ = "_strStart", _s11_ = "_blockStart", maxBlockSize = 65535 > A._lateReadCheck(_this.__Deflate__pendingBufferSize, _s18_) - 5 ? A._lateReadCheck(_this.__Deflate__pendingBufferSize, _s18_) - 5 : 65535; for (t1 = flush === 0; true;) { if (A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) <= 1) { _this._fillWindow$0(); if (A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) === 0 && t1) return 0; if (A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) === 0) break; } _this.__Deflate__strStart = A._lateReadCheck(_this.__Deflate__strStart, _s9_) + A._lateReadCheck(_this.__Deflate__lookAhead, _s10_); _this.__Deflate__lookAhead = 0; maxStart = A._lateReadCheck(_this.__Deflate__blockStart, _s11_) + maxBlockSize; if (A._lateReadCheck(_this.__Deflate__strStart, _s9_) >= maxStart) { _this.__Deflate__lookAhead = A._lateReadCheck(_this.__Deflate__strStart, _s9_) - maxStart; _this.__Deflate__strStart = maxStart; _this._flushBlockOnly$1(false); } if (A._lateReadCheck(_this.__Deflate__strStart, _s9_) - A._lateReadCheck(_this.__Deflate__blockStart, _s11_) >= A._lateReadCheck(_this.__Deflate__windowSize, "_windowSize") - 262) _this._flushBlockOnly$1(false); } t1 = flush === 4; _this._flushBlockOnly$1(t1); return t1 ? 3 : 1; }, _trStoredBlock$3(buf, storedLen, eof) { var t1, _this = this; _this._sendBits$2(eof ? 1 : 0, 3); _this._biWindup$0(); _this.__Deflate__lastEOBLen = 8; _this._putByte$1(storedLen); _this._putByte$1(A._rshift(storedLen, 8)); t1 = (~storedLen >>> 0) + 65536 & 65535; _this._putByte$1(t1); _this._putByte$1(A._rshift(t1, 8)); _this._putBytes$3(A._lateReadCheck(_this.__Deflate__window, "_window"), buf, storedLen); }, _fillWindow$0() { var more, p, n, t2, m, t3, t4, _this = this, _s10_ = "_lookAhead", _s9_ = "_strStart", _s11_ = "_windowSize", _s7_ = "_window", t1 = _this._deflate$_input; do { more = A._lateReadCheck(_this.__Deflate__actualWindowSize, "_actualWindowSize") - A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) - A._lateReadCheck(_this.__Deflate__strStart, _s9_); if (more === 0 && A._lateReadCheck(_this.__Deflate__strStart, _s9_) === 0 && A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) === 0) more = A._lateReadCheck(_this.__Deflate__windowSize, _s11_); else if (A._lateReadCheck(_this.__Deflate__strStart, _s9_) >= A._lateReadCheck(_this.__Deflate__windowSize, _s11_) + A._lateReadCheck(_this.__Deflate__windowSize, _s11_) - 262) { B.NativeUint8List_methods.setRange$4(A._lateReadCheck(_this.__Deflate__window, _s7_), 0, A._lateReadCheck(_this.__Deflate__windowSize, _s11_), A._lateReadCheck(_this.__Deflate__window, _s7_), A._lateReadCheck(_this.__Deflate__windowSize, _s11_)); _this._matchStart = _this._matchStart - A._lateReadCheck(_this.__Deflate__windowSize, _s11_); _this.__Deflate__strStart = A._lateReadCheck(_this.__Deflate__strStart, _s9_) - A._lateReadCheck(_this.__Deflate__windowSize, _s11_); _this.__Deflate__blockStart = A._lateReadCheck(_this.__Deflate__blockStart, "_blockStart") - A._lateReadCheck(_this.__Deflate__windowSize, _s11_); p = A._lateReadCheck(_this.__Deflate__hashSize, "_hashSize"); n = p; do { t2 = A._lateReadCheck(_this.__Deflate__head, "_head"); --p; if (!(p >= 0 && p < t2.length)) return A.ioore(t2, p); m = t2[p] & 65535; t2 = A._lateReadCheck(_this.__Deflate__head, "_head"); t3 = m >= A._lateReadCheck(_this.__Deflate__windowSize, _s11_) ? m - A._lateReadCheck(_this.__Deflate__windowSize, _s11_) : 0; if (!(p < t2.length)) return A.ioore(t2, p); t2[p] = t3; } while (--n, n !== 0); p = A._lateReadCheck(_this.__Deflate__windowSize, _s11_); n = p; do { t2 = A._lateReadCheck(_this.__Deflate__prev, "_prev"); --p; if (!(p >= 0 && p < t2.length)) return A.ioore(t2, p); m = t2[p] & 65535; t2 = A._lateReadCheck(_this.__Deflate__prev, "_prev"); t3 = m >= A._lateReadCheck(_this.__Deflate__windowSize, _s11_) ? m - A._lateReadCheck(_this.__Deflate__windowSize, _s11_) : 0; if (!(p < t2.length)) return A.ioore(t2, p); t2[p] = t3; } while (--n, n !== 0); more += A._lateReadCheck(_this.__Deflate__windowSize, _s11_); } if (t1.get$isEOS()) return; n = _this._readBuf$3(A._lateReadCheck(_this.__Deflate__window, _s7_), A._lateReadCheck(_this.__Deflate__strStart, _s9_) + A._lateReadCheck(_this.__Deflate__lookAhead, _s10_), more); t2 = A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) + n; _this.__Deflate__lookAhead = t2; if (A._lateReadCheck(t2, _s10_) >= 3) { t2 = A._lateReadCheck(_this.__Deflate__window, _s7_); t3 = A._lateReadCheck(_this.__Deflate__strStart, _s9_); if (t3 >>> 0 !== t3 || t3 >= t2.length) return A.ioore(t2, t3); t3 = t2[t3] & 255; _this.__Deflate__insertHash = t3; t3 = B.JSInt_methods.$shl(A._lateReadCheck(t3, "_insertHash"), A._lateReadCheck(_this.__Deflate__hashShift, "_hashShift")); t2 = A._lateReadCheck(_this.__Deflate__window, _s7_); t4 = A._lateReadCheck(_this.__Deflate__strStart, _s9_) + 1; if (!(t4 >= 0 && t4 < t2.length)) return A.ioore(t2, t4); _this.__Deflate__insertHash = ((t3 ^ t2[t4] & 255) & A._lateReadCheck(_this.__Deflate__hashMask, "_hashMask")) >>> 0; } } while (A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) < 262 && !t1.get$isEOS()); }, _deflateFast$1(flush) { var t1, hashHead, t2, t3, t4, t5, bflush, _this = this, _s10_ = "_lookAhead", _s11_ = "_insertHash", _s10_0 = "_hashShift", _s7_ = "_window", _s9_ = "_strStart", _s9_0 = "_hashMask", _s5_ = "_head", _s11_0 = "_windowMask", _s12_ = "_matchLength"; for (t1 = flush === 0, hashHead = 0; true;) { if (A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) < 262) { _this._fillWindow$0(); if (A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) < 262 && t1) return 0; if (A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) === 0) break; } if (A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) >= 3) { t2 = B.JSInt_methods.$shl(A._lateReadCheck(_this.__Deflate__insertHash, _s11_), A._lateReadCheck(_this.__Deflate__hashShift, _s10_0)); t3 = A._lateReadCheck(_this.__Deflate__window, _s7_); t4 = A._lateReadCheck(_this.__Deflate__strStart, _s9_) + 2; if (!(t4 >= 0 && t4 < t3.length)) return A.ioore(t3, t4); _this.__Deflate__insertHash = ((t2 ^ t3[t4] & 255) & A._lateReadCheck(_this.__Deflate__hashMask, _s9_0)) >>> 0; t4 = A._lateReadCheck(_this.__Deflate__head, _s5_); t3 = A._lateReadCheck(_this.__Deflate__insertHash, _s11_); if (t3 >>> 0 !== t3 || t3 >= t4.length) return A.ioore(t4, t3); hashHead = t4[t3] & 65535; t3 = A._lateReadCheck(_this.__Deflate__prev, "_prev"); t4 = (A._lateReadCheck(_this.__Deflate__strStart, _s9_) & A._lateReadCheck(_this.__Deflate__windowMask, _s11_0)) >>> 0; t2 = A._lateReadCheck(_this.__Deflate__head, _s5_); t5 = A._lateReadCheck(_this.__Deflate__insertHash, _s11_); if (t5 >>> 0 !== t5 || t5 >= t2.length) return A.ioore(t2, t5); t5 = t2[t5]; if (!(t4 >= 0 && t4 < t3.length)) return A.ioore(t3, t4); t3[t4] = t5; t5 = A._lateReadCheck(_this.__Deflate__head, _s5_); t4 = A._lateReadCheck(_this.__Deflate__insertHash, _s11_); t3 = A._lateReadCheck(_this.__Deflate__strStart, _s9_); if (t4 >>> 0 !== t4 || t4 >= t5.length) return A.ioore(t5, t4); t5[t4] = t3; } if (hashHead !== 0 && (A._lateReadCheck(_this.__Deflate__strStart, _s9_) - hashHead & 65535) <= A._lateReadCheck(_this.__Deflate__windowSize, "_windowSize") - 262) if (A._lateReadCheck(_this.__Deflate__strategy, "_strategy") !== 2) _this.__Deflate__matchLength = _this._longestMatch$1(hashHead); if (A._lateReadCheck(_this.__Deflate__matchLength, _s12_) >= 3) { bflush = _this._trTally$2(A._lateReadCheck(_this.__Deflate__strStart, _s9_) - _this._matchStart, A._lateReadCheck(_this.__Deflate__matchLength, _s12_) - 3); _this.__Deflate__lookAhead = A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) - A._lateReadCheck(_this.__Deflate__matchLength, _s12_); t2 = A._lateReadCheck(_this.__Deflate__matchLength, _s12_); t3 = $.Deflate____config._value; if (t3 == null ? $.Deflate____config == null : t3 === $.Deflate____config) A.throwExpression(A.LateError$fieldNI($.Deflate____config.__late_helper$_name)); if (t2 <= t3.maxLazy && A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) >= 3) { _this.__Deflate__matchLength = A._lateReadCheck(_this.__Deflate__matchLength, _s12_) - 1; do { _this.__Deflate__strStart = A._lateReadCheck(_this.__Deflate__strStart, _s9_) + 1; t2 = B.JSInt_methods.$shl(A._lateReadCheck(_this.__Deflate__insertHash, _s11_), A._lateReadCheck(_this.__Deflate__hashShift, _s10_0)); t3 = A._lateReadCheck(_this.__Deflate__window, _s7_); t4 = A._lateReadCheck(_this.__Deflate__strStart, _s9_) + 2; if (!(t4 >= 0 && t4 < t3.length)) return A.ioore(t3, t4); _this.__Deflate__insertHash = ((t2 ^ t3[t4] & 255) & A._lateReadCheck(_this.__Deflate__hashMask, _s9_0)) >>> 0; t4 = A._lateReadCheck(_this.__Deflate__head, _s5_); t3 = A._lateReadCheck(_this.__Deflate__insertHash, _s11_); if (t3 >>> 0 !== t3 || t3 >= t4.length) return A.ioore(t4, t3); hashHead = t4[t3] & 65535; t3 = A._lateReadCheck(_this.__Deflate__prev, "_prev"); t4 = (A._lateReadCheck(_this.__Deflate__strStart, _s9_) & A._lateReadCheck(_this.__Deflate__windowMask, _s11_0)) >>> 0; t2 = A._lateReadCheck(_this.__Deflate__head, _s5_); t5 = A._lateReadCheck(_this.__Deflate__insertHash, _s11_); if (t5 >>> 0 !== t5 || t5 >= t2.length) return A.ioore(t2, t5); t5 = t2[t5]; if (!(t4 >= 0 && t4 < t3.length)) return A.ioore(t3, t4); t3[t4] = t5; t5 = A._lateReadCheck(_this.__Deflate__head, _s5_); t4 = A._lateReadCheck(_this.__Deflate__insertHash, _s11_); t3 = A._lateReadCheck(_this.__Deflate__strStart, _s9_); if (t4 >>> 0 !== t4 || t4 >= t5.length) return A.ioore(t5, t4); t5[t4] = t3; } while (t2 = A._lateReadCheck(_this.__Deflate__matchLength, _s12_) - 1, _this.__Deflate__matchLength = t2, t2 !== 0); _this.__Deflate__strStart = A._lateReadCheck(_this.__Deflate__strStart, _s9_) + 1; } else { _this.__Deflate__strStart = A._lateReadCheck(_this.__Deflate__strStart, _s9_) + A._lateReadCheck(_this.__Deflate__matchLength, _s12_); _this.__Deflate__matchLength = 0; t2 = A._lateReadCheck(_this.__Deflate__window, _s7_); t3 = A._lateReadCheck(_this.__Deflate__strStart, _s9_); if (t3 >>> 0 !== t3 || t3 >= t2.length) return A.ioore(t2, t3); t3 = t2[t3] & 255; _this.__Deflate__insertHash = t3; t3 = B.JSInt_methods.$shl(A._lateReadCheck(t3, _s11_), A._lateReadCheck(_this.__Deflate__hashShift, _s10_0)); t2 = A._lateReadCheck(_this.__Deflate__window, _s7_); t4 = A._lateReadCheck(_this.__Deflate__strStart, _s9_) + 1; if (!(t4 >= 0 && t4 < t2.length)) return A.ioore(t2, t4); _this.__Deflate__insertHash = ((t3 ^ t2[t4] & 255) & A._lateReadCheck(_this.__Deflate__hashMask, _s9_0)) >>> 0; } } else { t2 = A._lateReadCheck(_this.__Deflate__window, _s7_); t3 = A._lateReadCheck(_this.__Deflate__strStart, _s9_); if (t3 >>> 0 !== t3 || t3 >= t2.length) return A.ioore(t2, t3); bflush = _this._trTally$2(0, t2[t3] & 255); _this.__Deflate__lookAhead = A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) - 1; _this.__Deflate__strStart = A._lateReadCheck(_this.__Deflate__strStart, _s9_) + 1; } if (bflush) _this._flushBlockOnly$1(false); } t1 = flush === 4; _this._flushBlockOnly$1(t1); return t1 ? 3 : 1; }, _deflateSlow$1(flush) { var t1, hashHead, t2, t3, t4, t5, maxInsert, bflush, _this = this, _s10_ = "_lookAhead", _s11_ = "_insertHash", _s10_0 = "_hashShift", _s7_ = "_window", _s9_ = "_strStart", _s9_0 = "_hashMask", _s5_ = "_head", _s11_0 = "_windowMask", _s12_ = "_matchLength", _s11_1 = "_prevLength", _s9_1 = "_strategy", _s15_ = "_matchAvailable"; for (t1 = flush === 0, hashHead = 0; true;) { if (A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) < 262) { _this._fillWindow$0(); if (A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) < 262 && t1) return 0; if (A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) === 0) break; } if (A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) >= 3) { t2 = B.JSInt_methods.$shl(A._lateReadCheck(_this.__Deflate__insertHash, _s11_), A._lateReadCheck(_this.__Deflate__hashShift, _s10_0)); t3 = A._lateReadCheck(_this.__Deflate__window, _s7_); t4 = A._lateReadCheck(_this.__Deflate__strStart, _s9_) + 2; if (!(t4 >= 0 && t4 < t3.length)) return A.ioore(t3, t4); _this.__Deflate__insertHash = ((t2 ^ t3[t4] & 255) & A._lateReadCheck(_this.__Deflate__hashMask, _s9_0)) >>> 0; t4 = A._lateReadCheck(_this.__Deflate__head, _s5_); t3 = A._lateReadCheck(_this.__Deflate__insertHash, _s11_); if (t3 >>> 0 !== t3 || t3 >= t4.length) return A.ioore(t4, t3); hashHead = t4[t3] & 65535; t3 = A._lateReadCheck(_this.__Deflate__prev, "_prev"); t4 = (A._lateReadCheck(_this.__Deflate__strStart, _s9_) & A._lateReadCheck(_this.__Deflate__windowMask, _s11_0)) >>> 0; t2 = A._lateReadCheck(_this.__Deflate__head, _s5_); t5 = A._lateReadCheck(_this.__Deflate__insertHash, _s11_); if (t5 >>> 0 !== t5 || t5 >= t2.length) return A.ioore(t2, t5); t5 = t2[t5]; if (!(t4 >= 0 && t4 < t3.length)) return A.ioore(t3, t4); t3[t4] = t5; t5 = A._lateReadCheck(_this.__Deflate__head, _s5_); t4 = A._lateReadCheck(_this.__Deflate__insertHash, _s11_); t3 = A._lateReadCheck(_this.__Deflate__strStart, _s9_); if (t4 >>> 0 !== t4 || t4 >= t5.length) return A.ioore(t5, t4); t5[t4] = t3; } t2 = A._lateReadCheck(_this.__Deflate__matchLength, _s12_); _this.__Deflate__prevLength = t2; _this.__Deflate__prevMatch = _this._matchStart; _this.__Deflate__matchLength = 2; if (hashHead !== 0) { t2 = A._lateReadCheck(t2, _s11_1); t3 = $.Deflate____config._value; if (t3 == null ? $.Deflate____config == null : t3 === $.Deflate____config) A.throwExpression(A.LateError$fieldNI($.Deflate____config.__late_helper$_name)); t2 = t2 < t3.maxLazy && (A._lateReadCheck(_this.__Deflate__strStart, _s9_) - hashHead & 65535) <= A._lateReadCheck(_this.__Deflate__windowSize, "_windowSize") - 262; } else t2 = false; if (t2) { if (A._lateReadCheck(_this.__Deflate__strategy, _s9_1) !== 2) _this.__Deflate__matchLength = _this._longestMatch$1(hashHead); if (A._lateReadCheck(_this.__Deflate__matchLength, _s12_) <= 5) if (A._lateReadCheck(_this.__Deflate__strategy, _s9_1) !== 1) t2 = A._lateReadCheck(_this.__Deflate__matchLength, _s12_) === 3 && A._lateReadCheck(_this.__Deflate__strStart, _s9_) - _this._matchStart > 4096; else t2 = true; else t2 = false; if (t2) _this.__Deflate__matchLength = 2; } if (A._lateReadCheck(_this.__Deflate__prevLength, _s11_1) >= 3 && A._lateReadCheck(_this.__Deflate__matchLength, _s12_) <= A._lateReadCheck(_this.__Deflate__prevLength, _s11_1)) { maxInsert = A._lateReadCheck(_this.__Deflate__strStart, _s9_) + A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) - 3; bflush = _this._trTally$2(A._lateReadCheck(_this.__Deflate__strStart, _s9_) - 1 - A._lateReadCheck(_this.__Deflate__prevMatch, "_prevMatch"), A._lateReadCheck(_this.__Deflate__prevLength, _s11_1) - 3); _this.__Deflate__lookAhead = A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) - (A._lateReadCheck(_this.__Deflate__prevLength, _s11_1) - 1); _this.__Deflate__prevLength = A._lateReadCheck(_this.__Deflate__prevLength, _s11_1) - 2; do { t2 = A._lateReadCheck(_this.__Deflate__strStart, _s9_) + 1; _this.__Deflate__strStart = t2; if (t2 <= maxInsert) { t2 = B.JSInt_methods.$shl(A._lateReadCheck(_this.__Deflate__insertHash, _s11_), A._lateReadCheck(_this.__Deflate__hashShift, _s10_0)); t3 = A._lateReadCheck(_this.__Deflate__window, _s7_); t4 = A._lateReadCheck(_this.__Deflate__strStart, _s9_) + 2; if (!(t4 >= 0 && t4 < t3.length)) return A.ioore(t3, t4); _this.__Deflate__insertHash = ((t2 ^ t3[t4] & 255) & A._lateReadCheck(_this.__Deflate__hashMask, _s9_0)) >>> 0; t4 = A._lateReadCheck(_this.__Deflate__head, _s5_); t3 = A._lateReadCheck(_this.__Deflate__insertHash, _s11_); if (t3 >>> 0 !== t3 || t3 >= t4.length) return A.ioore(t4, t3); hashHead = t4[t3] & 65535; t3 = A._lateReadCheck(_this.__Deflate__prev, "_prev"); t4 = (A._lateReadCheck(_this.__Deflate__strStart, _s9_) & A._lateReadCheck(_this.__Deflate__windowMask, _s11_0)) >>> 0; t2 = A._lateReadCheck(_this.__Deflate__head, _s5_); t5 = A._lateReadCheck(_this.__Deflate__insertHash, _s11_); if (t5 >>> 0 !== t5 || t5 >= t2.length) return A.ioore(t2, t5); t5 = t2[t5]; if (!(t4 >= 0 && t4 < t3.length)) return A.ioore(t3, t4); t3[t4] = t5; t5 = A._lateReadCheck(_this.__Deflate__head, _s5_); t4 = A._lateReadCheck(_this.__Deflate__insertHash, _s11_); t3 = A._lateReadCheck(_this.__Deflate__strStart, _s9_); if (t4 >>> 0 !== t4 || t4 >= t5.length) return A.ioore(t5, t4); t5[t4] = t3; } } while (t2 = A._lateReadCheck(_this.__Deflate__prevLength, _s11_1) - 1, _this.__Deflate__prevLength = t2, t2 !== 0); _this.__Deflate__matchAvailable = 0; _this.__Deflate__matchLength = 2; _this.__Deflate__strStart = A._lateReadCheck(_this.__Deflate__strStart, _s9_) + 1; if (bflush) _this._flushBlockOnly$1(false); } else if (A._lateReadCheck(_this.__Deflate__matchAvailable, _s15_) !== 0) { t2 = A._lateReadCheck(_this.__Deflate__window, _s7_); t3 = A._lateReadCheck(_this.__Deflate__strStart, _s9_) - 1; if (!(t3 >= 0 && t3 < t2.length)) return A.ioore(t2, t3); if (_this._trTally$2(0, t2[t3] & 255)) _this._flushBlockOnly$1(false); _this.__Deflate__strStart = A._lateReadCheck(_this.__Deflate__strStart, _s9_) + 1; _this.__Deflate__lookAhead = A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) - 1; } else { _this.__Deflate__matchAvailable = 1; _this.__Deflate__strStart = A._lateReadCheck(_this.__Deflate__strStart, _s9_) + 1; _this.__Deflate__lookAhead = A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) - 1; } } if (A._lateReadCheck(_this.__Deflate__matchAvailable, _s15_) !== 0) { t1 = A._lateReadCheck(_this.__Deflate__window, _s7_); t2 = A._lateReadCheck(_this.__Deflate__strStart, _s9_) - 1; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); _this._trTally$2(0, t1[t2] & 255); _this.__Deflate__matchAvailable = 0; } t1 = flush === 4; _this._flushBlockOnly$1(t1); return t1 ? 3 : 1; }, _longestMatch$1(curMatch) { var scanEnd1, scanEnd, scan0, match, len, _this = this, _s9_ = "_strStart", _s11_ = "_prevLength", _s11_0 = "_windowSize", _s7_ = "_window", _s10_ = "_lookAhead", chainLength = $.Deflate____config._readField$0().maxChain, scan = A._lateReadCheck(_this.__Deflate__strStart, _s9_), bestLen = A._lateReadCheck(_this.__Deflate__prevLength, _s11_), limit = A._lateReadCheck(_this.__Deflate__strStart, _s9_) > A._lateReadCheck(_this.__Deflate__windowSize, _s11_0) - 262 ? A._lateReadCheck(_this.__Deflate__strStart, _s9_) - (A._lateReadCheck(_this.__Deflate__windowSize, _s11_0) - 262) : 0, niceMatch = $.Deflate____config._readField$0().niceLength, t1 = A._lateReadCheck(_this.__Deflate__windowMask, "_windowMask"), strend = A._lateReadCheck(_this.__Deflate__strStart, _s9_) + 258, t2 = A._lateReadCheck(_this.__Deflate__window, _s7_), t3 = scan + bestLen, t4 = t3 - 1; if (!(t4 >= 0 && t4 < t2.length)) return A.ioore(t2, t4); scanEnd1 = t2[t4]; t4 = A._lateReadCheck(_this.__Deflate__window, _s7_); if (!(t3 >= 0 && t3 < t4.length)) return A.ioore(t4, t3); scanEnd = t4[t3]; if (A._lateReadCheck(_this.__Deflate__prevLength, _s11_) >= $.Deflate____config._readField$0().goodLength) chainLength = chainLength >>> 2; if (niceMatch > A._lateReadCheck(_this.__Deflate__lookAhead, _s10_)) niceMatch = A._lateReadCheck(_this.__Deflate__lookAhead, _s10_); scan0 = strend - 258; do { c$0: { t2 = A._lateReadCheck(_this.__Deflate__window, _s7_); t3 = curMatch + bestLen; if (!(t3 >= 0 && t3 < t2.length)) return A.ioore(t2, t3); if (t2[t3] === scanEnd) { t2 = A._lateReadCheck(_this.__Deflate__window, _s7_); --t3; if (!(t3 >= 0 && t3 < t2.length)) return A.ioore(t2, t3); if (t2[t3] === scanEnd1) { t2 = A._lateReadCheck(_this.__Deflate__window, _s7_); if (!(curMatch >= 0 && curMatch < t2.length)) return A.ioore(t2, curMatch); t2 = t2[curMatch]; t3 = A._lateReadCheck(_this.__Deflate__window, _s7_); if (!(scan >= 0 && scan < t3.length)) return A.ioore(t3, scan); if (t2 === t3[scan]) { t2 = A._lateReadCheck(_this.__Deflate__window, _s7_); match = curMatch + 1; if (!(match < t2.length)) return A.ioore(t2, match); t2 = t2[match]; t3 = A._lateReadCheck(_this.__Deflate__window, _s7_); t4 = scan + 1; if (!(t4 < t3.length)) return A.ioore(t3, t4); t4 = t2 !== t3[t4]; t2 = t4; } else { match = curMatch; t2 = true; } } else { match = curMatch; t2 = true; } } else { match = curMatch; t2 = true; } if (t2) break c$0; scan += 2; ++match; do { t2 = A._lateReadCheck(_this.__Deflate__window, _s7_); ++scan; if (!(scan >= 0 && scan < t2.length)) return A.ioore(t2, scan); t2 = t2[scan]; t3 = A._lateReadCheck(_this.__Deflate__window, _s7_); ++match; if (!(match >= 0 && match < t3.length)) return A.ioore(t3, match); if (t2 === t3[match]) { t2 = A._lateReadCheck(_this.__Deflate__window, _s7_); ++scan; if (!(scan < t2.length)) return A.ioore(t2, scan); t2 = t2[scan]; t3 = A._lateReadCheck(_this.__Deflate__window, _s7_); ++match; if (!(match < t3.length)) return A.ioore(t3, match); if (t2 === t3[match]) { t2 = A._lateReadCheck(_this.__Deflate__window, _s7_); ++scan; if (!(scan < t2.length)) return A.ioore(t2, scan); t2 = t2[scan]; t3 = A._lateReadCheck(_this.__Deflate__window, _s7_); ++match; if (!(match < t3.length)) return A.ioore(t3, match); if (t2 === t3[match]) { t2 = A._lateReadCheck(_this.__Deflate__window, _s7_); ++scan; if (!(scan < t2.length)) return A.ioore(t2, scan); t2 = t2[scan]; t3 = A._lateReadCheck(_this.__Deflate__window, _s7_); ++match; if (!(match < t3.length)) return A.ioore(t3, match); if (t2 === t3[match]) { t2 = A._lateReadCheck(_this.__Deflate__window, _s7_); ++scan; if (!(scan < t2.length)) return A.ioore(t2, scan); t2 = t2[scan]; t3 = A._lateReadCheck(_this.__Deflate__window, _s7_); ++match; if (!(match < t3.length)) return A.ioore(t3, match); if (t2 === t3[match]) { t2 = A._lateReadCheck(_this.__Deflate__window, _s7_); ++scan; if (!(scan < t2.length)) return A.ioore(t2, scan); t2 = t2[scan]; t3 = A._lateReadCheck(_this.__Deflate__window, _s7_); ++match; if (!(match < t3.length)) return A.ioore(t3, match); if (t2 === t3[match]) { t2 = A._lateReadCheck(_this.__Deflate__window, _s7_); ++scan; if (!(scan < t2.length)) return A.ioore(t2, scan); t2 = t2[scan]; t3 = A._lateReadCheck(_this.__Deflate__window, _s7_); ++match; if (!(match < t3.length)) return A.ioore(t3, match); if (t2 === t3[match]) { t2 = A._lateReadCheck(_this.__Deflate__window, _s7_); ++scan; if (!(scan < t2.length)) return A.ioore(t2, scan); t2 = t2[scan]; t3 = A._lateReadCheck(_this.__Deflate__window, _s7_); ++match; if (!(match < t3.length)) return A.ioore(t3, match); t2 = t2 === t3[match] && scan < strend; } else t2 = false; } else t2 = false; } else t2 = false; } else t2 = false; } else t2 = false; } else t2 = false; } else t2 = false; } while (t2); len = 258 - (strend - scan); if (len > bestLen) { _this._matchStart = curMatch; if (len >= niceMatch) { bestLen = len; break; } t2 = A._lateReadCheck(_this.__Deflate__window, _s7_); t3 = scan0 + len; t4 = t3 - 1; if (!(t4 >= 0 && t4 < t2.length)) return A.ioore(t2, t4); scanEnd1 = t2[t4]; t4 = A._lateReadCheck(_this.__Deflate__window, _s7_); if (!(t3 < t4.length)) return A.ioore(t4, t3); scanEnd = t4[t3]; bestLen = len; } scan = scan0; } t2 = A._lateReadCheck(_this.__Deflate__prev, "_prev"); t3 = curMatch & t1; if (!(t3 >= 0 && t3 < t2.length)) return A.ioore(t2, t3); curMatch = t2[t3] & 65535; if (curMatch > limit) { --chainLength; t2 = chainLength !== 0; } else t2 = false; } while (t2); if (bestLen <= A._lateReadCheck(_this.__Deflate__lookAhead, _s10_)) return bestLen; return A._lateReadCheck(_this.__Deflate__lookAhead, _s10_); }, _readBuf$3(buf, start, size) { var data, len, bytes, len0, _this = this; if (size === 0 || _this._deflate$_input.get$isEOS()) return 0; data = _this._deflate$_input.readBytes$1(size); len = data.get$length(data); if (len === 0) return 0; bytes = data.toUint8List$0(); len0 = bytes.length; if (len > len0) len = len0; B.NativeUint8List_methods.setRange$3(buf, start, start + len, bytes); _this.total += len; _this.crc32 = A.getCrc32(bytes, _this.crc32); return len; }, _flushPending$0() { var _this = this, _s8_ = "_pending", t1 = A._lateReadCheck(_this.__Deflate__pending, _s8_); _this._deflate$_output.writeBytes$2(A._lateReadCheck(_this.__Deflate__pendingBuffer, "_pendingBuffer"), t1); _this.__Deflate__pendingOut = A._lateReadCheck(_this.__Deflate__pendingOut, "_pendingOut") + t1; t1 = A._lateReadCheck(_this.__Deflate__pending, _s8_) - t1; _this.__Deflate__pending = t1; if (A._lateReadCheck(t1, _s8_) === 0) _this.__Deflate__pendingOut = 0; }, _getConfig$1(level) { switch (level) { case 0: return new A._DeflaterConfig(0, 0, 0, 0, 0); case 1: return new A._DeflaterConfig(4, 4, 8, 4, 1); case 2: return new A._DeflaterConfig(4, 5, 16, 8, 1); case 3: return new A._DeflaterConfig(4, 6, 32, 32, 1); case 4: return new A._DeflaterConfig(4, 4, 16, 16, 2); case 5: return new A._DeflaterConfig(8, 16, 32, 32, 2); case 6: return new A._DeflaterConfig(8, 16, 128, 128, 2); case 7: return new A._DeflaterConfig(8, 32, 128, 256, 2); case 8: return new A._DeflaterConfig(32, 128, 258, 1024, 2); case 9: return new A._DeflaterConfig(32, 258, 258, 4096, 2); } throw A.wrapException(A.ArchiveException$("Invalid Deflate parameter")); } }; A._DeflaterConfig.prototype = {}; A._HuffmanTree.prototype = { _genBitlen$1(s) { var t2, bits, t3, t4, t5, h, t6, overflow, n, t7, t8, t9, xbits, f, bits0, m, _this = this, _s10_ = "staticDesc", _s8_ = "_heapMax", _s11_ = "_optimalLen", t1 = A._lateReadCheck(_this.___HuffmanTree_dynamicTree, "dynamicTree"), stree = A._lateReadCheck(_this.___HuffmanTree_staticDesc, _s10_).staticTree, extra = A._lateReadCheck(_this.___HuffmanTree_staticDesc, _s10_).extraBits, baseRenamed = A._lateReadCheck(_this.___HuffmanTree_staticDesc, _s10_).extraBase, maxLength = A._lateReadCheck(_this.___HuffmanTree_staticDesc, _s10_).maxLength; for (t2 = s._bitLengthCount, bits = 0; bits <= 15; ++bits) t2[bits] = 0; t3 = s._heap; t4 = A._lateReadCheck(s.__Deflate__heapMax, _s8_); if (t4 >>> 0 !== t4 || t4 >= 573) return A.ioore(t3, t4); t4 = t3[t4] * 2 + 1; t5 = t1.length; if (!(t4 >= 0 && t4 < t5)) return A.ioore(t1, t4); t1[t4] = 0; for (h = A._lateReadCheck(s.__Deflate__heapMax, _s8_) + 1, t4 = stree != null, t6 = extra.length, overflow = 0; h < 573; ++h) { if (!(h >= 0)) return A.ioore(t3, h); n = t3[h]; t7 = n * 2; t8 = t7 + 1; if (!(t8 >= 0 && t8 < t5)) return A.ioore(t1, t8); t9 = t1[t8] * 2 + 1; if (!(t9 < t5)) return A.ioore(t1, t9); bits = t1[t9] + 1; if (bits > maxLength) { ++overflow; bits = maxLength; } t1[t8] = bits; if (n > A._lateReadCheck(_this.___HuffmanTree_maxCode, "maxCode")) continue; if (!(bits < 16)) return A.ioore(t2, bits); t2[bits] = t2[bits] + 1; if (n >= baseRenamed) { t9 = n - baseRenamed; if (!(t9 >= 0 && t9 < t6)) return A.ioore(extra, t9); xbits = extra[t9]; } else xbits = 0; if (!(t7 >= 0 && t7 < t5)) return A.ioore(t1, t7); f = t1[t7]; s.__Deflate__optimalLen = A._lateReadCheck(s.__Deflate__optimalLen, _s11_) + f * (bits + xbits); if (t4) { t7 = A._lateReadCheck(s.__Deflate__staticLen, "_staticLen"); if (!(t8 < stree.length)) return A.ioore(stree, t8); s.__Deflate__staticLen = t7 + f * (stree[t8] + xbits); } } if (overflow === 0) return; bits = maxLength - 1; do { bits0 = bits; while (true) { if (!(bits0 >= 0 && bits0 < 16)) return A.ioore(t2, bits0); t4 = t2[bits0]; if (!(t4 === 0)) break; --bits0; } t2[bits0] = t4 - 1; t4 = bits0 + 1; if (!(t4 < 16)) return A.ioore(t2, t4); t2[t4] = t2[t4] + 2; if (!(maxLength < 16)) return A.ioore(t2, maxLength); t2[maxLength] = t2[maxLength] - 1; overflow -= 2; } while (overflow > 0); for (bits = maxLength; bits !== 0; --bits) { if (!(bits >= 0)) return A.ioore(t2, bits); n = t2[bits]; for (; n !== 0;) { --h; if (!(h >= 0 && h < 573)) return A.ioore(t3, h); m = t3[h]; if (m > A._lateReadCheck(_this.___HuffmanTree_maxCode, "maxCode")) continue; t4 = m * 2; t6 = t4 + 1; if (!(t6 >= 0 && t6 < t5)) return A.ioore(t1, t6); if (t1[t6] !== bits) { t7 = A._lateReadCheck(s.__Deflate__optimalLen, _s11_); t8 = t1[t6]; if (!(t4 >= 0 && t4 < t5)) return A.ioore(t1, t4); s.__Deflate__optimalLen = t7 + (bits - t8) * t1[t4]; t1[t6] = bits; } --n; } } }, _buildTree$1(s) { var t2, t3, t4, n, maxCode, t5, t6, node, t7, m, t8, t9, node0, _this = this, _s10_ = "staticDesc", _s8_ = "_heapLen", _s8_0 = "_heapMax", t1 = A._lateReadCheck(_this.___HuffmanTree_dynamicTree, "dynamicTree"), stree = A._lateReadCheck(_this.___HuffmanTree_staticDesc, _s10_).staticTree, elems = A._lateReadCheck(_this.___HuffmanTree_staticDesc, _s10_).numElements; s.__Deflate__heapLen = 0; s.__Deflate__heapMax = 573; for (t2 = t1.length, t3 = s._heap, t4 = s._depth, n = 0, maxCode = -1; n < elems; ++n) { t5 = n * 2; if (!(t5 < t2)) return A.ioore(t1, t5); if (t1[t5] !== 0) { t5 = A._lateReadCheck(s.__Deflate__heapLen, _s8_) + 1; s.__Deflate__heapLen = t5; if (!(t5 >= 0 && t5 < 573)) return A.ioore(t3, t5); t3[t5] = n; if (!(n < 573)) return A.ioore(t4, n); t4[n] = 0; maxCode = n; } else { ++t5; if (!(t5 < t2)) return A.ioore(t1, t5); t1[t5] = 0; } } for (t5 = stree != null; A._lateReadCheck(s.__Deflate__heapLen, _s8_) < 2;) { t6 = A._lateReadCheck(s.__Deflate__heapLen, _s8_) + 1; s.__Deflate__heapLen = t6; if (maxCode < 2) { ++maxCode; node = maxCode; } else node = 0; if (!(t6 >= 0 && t6 < 573)) return A.ioore(t3, t6); t3[t6] = node; t6 = node * 2; if (!(t6 >= 0 && t6 < t2)) return A.ioore(t1, t6); t1[t6] = 1; t4[node] = 0; s.__Deflate__optimalLen = A._lateReadCheck(s.__Deflate__optimalLen, "_optimalLen") - 1; if (t5) { t7 = A._lateReadCheck(s.__Deflate__staticLen, "_staticLen"); ++t6; if (!(t6 < stree.length)) return A.ioore(stree, t6); s.__Deflate__staticLen = t7 - stree[t6]; } } _this.___HuffmanTree_maxCode = maxCode; for (n = B.JSInt_methods._tdivFast$1(A._lateReadCheck(s.__Deflate__heapLen, _s8_), 2); n >= 1; --n) s._pqdownheap$2(t1, n); node = elems; do { n = t3[1]; t5 = A._lateReadCheck(s.__Deflate__heapLen, _s8_); s.__Deflate__heapLen = t5 - 1; if (t5 >>> 0 !== t5 || t5 >= 573) return A.ioore(t3, t5); t3[1] = t3[t5]; s._pqdownheap$2(t1, 1); m = t3[1]; t5 = A._lateReadCheck(s.__Deflate__heapMax, _s8_0) - 1; s.__Deflate__heapMax = t5; if (!(t5 >= 0 && t5 < 573)) return A.ioore(t3, t5); t3[t5] = n; t5 = A._lateReadCheck(t5, _s8_0) - 1; s.__Deflate__heapMax = t5; if (!(t5 >= 0 && t5 < 573)) return A.ioore(t3, t5); t3[t5] = m; t5 = node * 2; t6 = n * 2; if (!(t6 >= 0 && t6 < t2)) return A.ioore(t1, t6); t7 = t1[t6]; t8 = m * 2; if (!(t8 >= 0 && t8 < t2)) return A.ioore(t1, t8); t9 = t1[t8]; if (!(t5 < t2)) return A.ioore(t1, t5); t1[t5] = t7 + t9; if (!(n >= 0 && n < 573)) return A.ioore(t4, n); t9 = t4[n]; if (!(m >= 0 && m < 573)) return A.ioore(t4, m); t7 = t4[m]; t5 = t9 > t7 ? t9 : t7; if (!(node < 573)) return A.ioore(t4, node); t4[node] = t5 + 1; ++t6; ++t8; if (!(t8 < t2)) return A.ioore(t1, t8); t1[t8] = node; if (!(t6 < t2)) return A.ioore(t1, t6); t1[t6] = node; node0 = node + 1; t3[1] = node; s._pqdownheap$2(t1, 1); if (A._lateReadCheck(s.__Deflate__heapLen, _s8_) >= 2) { node = node0; continue; } else break; } while (true); t2 = A._lateReadCheck(s.__Deflate__heapMax, _s8_0) - 1; s.__Deflate__heapMax = t2; t4 = t3[1]; if (!(t2 >= 0 && t2 < 573)) return A.ioore(t3, t2); t3[t2] = t4; _this._genBitlen$1(s); A._HuffmanTree__genCodes(t1, maxCode, s._bitLengthCount); } }; A._StaticTree.prototype = {}; A.HuffmanTable.prototype = { HuffmanTable$1(lengths) { var i, t1, t2, size, bitLength, code, skip, rtemp, reversed, j, t3, _this = this, listSize = lengths.length; for (i = 0; i < listSize; ++i) { if (!(i < lengths.length)) return A.ioore(lengths, i); t1 = lengths[i]; t2 = _this.maxCodeLength; if (typeof t1 !== "number") return t1.$gt(); if (t1 > t2) _this.set$maxCodeLength(t1); if (!(i < lengths.length)) return A.ioore(lengths, i); t1 = lengths[i]; t2 = _this.minCodeLength; if (typeof t1 !== "number") return t1.$lt(); if (t1 < t2) _this.set$minCodeLength(t1); } size = B.JSInt_methods.$shl(1, _this.maxCodeLength); _this.__HuffmanTable_table = new Uint32Array(size); for (bitLength = 1, code = 0, skip = 2; bitLength <= _this.maxCodeLength;) { for (t1 = bitLength << 16, i = 0; i < listSize; ++i) { if (!(i < lengths.length)) return A.ioore(lengths, i); if (J.$eq$(lengths[i], bitLength)) { for (rtemp = code, reversed = 0, j = 0; j < bitLength; ++j) { reversed = (reversed << 1 | rtemp & 1) >>> 0; rtemp = rtemp >>> 1; } for (t2 = (t1 | i) >>> 0, j = reversed; j < size; j += skip) { t3 = A._lateReadCheck(_this.__HuffmanTable_table, "table"); if (!(j >= 0 && j < t3.length)) return A.ioore(t3, j); t3[j] = t2; } ++code; } } ++bitLength; code = code << 1 >>> 0; skip = skip << 1 >>> 0; } }, set$maxCodeLength(maxCodeLength) { this.maxCodeLength = A._asInt(maxCodeLength); }, set$minCodeLength(minCodeLength) { this.minCodeLength = A._asInt(minCodeLength); } }; A.Inflate.prototype = { _inflate$0() { var t1, t2, _this = this; _this._bitBufferLen = _this._bitBuffer = 0; if (!_this.inputSet) return; for (t1 = _this.__Inflate_input; t2 = A._lateReadCheck(t1, "input"), t2.offset < t2.start + A._lateReadCheck(t2.__InputStream__length, "_length");) if (!_this._parseBlock$0()) break; }, _parseBlock$0() { var blockHeader, _this = this; if (A._lateReadCheck(_this.__Inflate_input, "input").get$isEOS()) return false; blockHeader = _this._readBits$1(3); switch (B.JSInt_methods._shrOtherPositive$1(blockHeader, 1)) { case 0: if (_this._parseUncompressedBlock$0() === -1) return false; break; case 1: if (_this._decodeHuffman$2(_this._fixedLiteralLengthTable, _this._fixedDistanceTable) === -1) return false; break; case 2: if (_this._parseDynamicHuffmanBlock$0() === -1) return false; break; default: return false; } return (blockHeader & 1) === 0; }, _readBits$1($length) { var t1, t2, t3, t4, _this = this; if ($length === 0) return 0; for (t1 = _this.__Inflate_input; t2 = _this._bitBufferLen, t2 < $length;) { t2 = A._lateReadCheck(t1, "input"); if (t2.offset >= t2.start + A._lateReadCheck(t2.__InputStream__length, "_length")) return -1; t2 = A._lateReadCheck(t1, "input"); t3 = t2.buffer; t2 = t2.offset++; if (!(t2 >= 0 && t2 < t3.length)) return A.ioore(t3, t2); t2 = t3[t2]; t3 = _this._bitBuffer; t4 = _this._bitBufferLen; _this._bitBuffer = (t3 | B.JSInt_methods.$shl(t2, t4)) >>> 0; _this._bitBufferLen = t4 + 8; } t1 = _this._bitBuffer; t3 = B.JSInt_methods._shlPositive$1(1, $length); _this._bitBuffer = B.JSInt_methods._shrBothPositive$1(t1, $length); _this._bitBufferLen = t2 - $length; return (t1 & t3 - 1) >>> 0; }, _readCodeByTable$1(table) { var t2, t3, t4, t5, codeWithLength, codeLength, _this = this, t1 = A._lateReadCheck(table.__HuffmanTable_table, "table"), maxCodeLength = table.maxCodeLength; for (t2 = _this.__Inflate_input; t3 = _this._bitBufferLen, t3 < maxCodeLength;) { t3 = A._lateReadCheck(t2, "input"); if (t3.offset >= t3.start + A._lateReadCheck(t3.__InputStream__length, "_length")) return -1; t3 = A._lateReadCheck(t2, "input"); t4 = t3.buffer; t3 = t3.offset++; if (!(t3 >= 0 && t3 < t4.length)) return A.ioore(t4, t3); t3 = t4[t3]; t4 = _this._bitBuffer; t5 = _this._bitBufferLen; _this._bitBuffer = (t4 | B.JSInt_methods.$shl(t3, t5)) >>> 0; _this._bitBufferLen = t5 + 8; } t2 = _this._bitBuffer; t4 = (t2 & B.JSInt_methods.$shl(1, maxCodeLength) - 1) >>> 0; if (!(t4 < t1.length)) return A.ioore(t1, t4); codeWithLength = t1[t4]; codeLength = codeWithLength >>> 16; _this._bitBuffer = B.JSInt_methods._shrBothPositive$1(t2, codeLength); _this._bitBufferLen = t3 - codeLength; return codeWithLength & 65535; }, _parseUncompressedBlock$0() { var len, t1, t2, _this = this; _this._bitBufferLen = _this._bitBuffer = 0; len = _this._readBits$1(16); t1 = _this._readBits$1(16); if (len !== 0 && len !== (t1 ^ 65535) >>> 0) return -1; t1 = _this.__Inflate_input; t2 = A._lateReadCheck(t1, "input"); if (len > t2.get$length(t2)) return -1; _this.output.writeInputStream$1(A._lateReadCheck(t1, "input").readBytes$1(len)); return 0; }, _parseDynamicHuffmanBlock$0() { var numDistanceCodes, numCodeLengths, codeLengths, i, len, t1, codeLengthsTable, litLenDistLengths, litlenLengths, distLengths, _this = this, numLitLengthCodes = _this._readBits$1(5); if (numLitLengthCodes === -1) return -1; numLitLengthCodes += 257; if (numLitLengthCodes > 288) return -1; numDistanceCodes = _this._readBits$1(5); if (numDistanceCodes === -1) return -1; ++numDistanceCodes; if (numDistanceCodes > 32) return -1; numCodeLengths = _this._readBits$1(4); if (numCodeLengths === -1) return -1; numCodeLengths += 4; if (numCodeLengths > 19) return -1; codeLengths = new Uint8Array(19); for (i = 0; i < numCodeLengths; ++i) { len = _this._readBits$1(3); if (len === -1) return -1; t1 = B.List_uSC[i]; if (!(t1 < 19)) return A.ioore(codeLengths, t1); codeLengths[t1] = len; } codeLengthsTable = A.HuffmanTable$(codeLengths); t1 = numLitLengthCodes + numDistanceCodes; litLenDistLengths = new Uint8Array(t1); litlenLengths = A.NativeUint8List_NativeUint8List$view(litLenDistLengths.buffer, 0, numLitLengthCodes); distLengths = A.NativeUint8List_NativeUint8List$view(litLenDistLengths.buffer, numLitLengthCodes, numDistanceCodes); if (_this._decode$3(t1, codeLengthsTable, litLenDistLengths) === -1) return -1; return _this._decodeHuffman$2(A.HuffmanTable$(litlenLengths), A.HuffmanTable$(distLengths)); }, _decodeHuffman$2(litlen, dist) { var t1, code, ti, codeLength, distCode, distance, t2, _this = this; for (t1 = _this.output; true;) { code = _this._readCodeByTable$1(litlen); if (code < 0 || code > 285) return -1; if (code === 256) break; if (code < 256) { t1.writeByte$1(code & 255); continue; } ti = code - 257; if (!(ti >= 0 && ti < 29)) return A.ioore(B.List_qQn, ti); codeLength = B.List_qQn[ti] + _this._readBits$1(B.List_eea[ti]); distCode = _this._readCodeByTable$1(dist); if (distCode < 0 || distCode > 29) return -1; if (!(distCode >= 0 && distCode < 30)) return A.ioore(B.List_i3t, distCode); distance = B.List_i3t[distCode] + _this._readBits$1(B.List_X3d0[distCode]); for (t2 = -distance; codeLength > distance;) { t1.writeBytes$1(t1.subset$1(t2)); codeLength -= distance; } if (codeLength === distance) t1.writeBytes$1(t1.subset$1(t2)); else t1.writeBytes$1(t1.subset$2(t2, codeLength - distance)); } for (t1 = _this.__Inflate_input; t2 = _this._bitBufferLen, t2 >= 8;) { _this._bitBufferLen = t2 - 8; t2 = A._lateReadCheck(t1, "input"); if (--t2.offset < 0) t2.offset = 0; } return 0; }, _decode$3(num, table, codeLengths) { var t1, prev, i, code, repeat, repeat0, i0, _this = this; type$.List_int._as(codeLengths); for (t1 = codeLengths.length, prev = 0, i = 0; i < num;) { code = _this._readCodeByTable$1(table); if (code === -1) return -1; switch (code) { case 16: repeat = _this._readBits$1(2); if (repeat === -1) return -1; repeat += 3; for (; repeat0 = repeat - 1, repeat > 0; repeat = repeat0, i = i0) { i0 = i + 1; if (!(i >= 0 && i < t1)) return A.ioore(codeLengths, i); codeLengths[i] = prev; } break; case 17: repeat = _this._readBits$1(3); if (repeat === -1) return -1; repeat += 3; for (; repeat0 = repeat - 1, repeat > 0; repeat = repeat0, i = i0) { i0 = i + 1; if (!(i >= 0 && i < t1)) return A.ioore(codeLengths, i); codeLengths[i] = 0; } prev = 0; break; case 18: repeat = _this._readBits$1(7); if (repeat === -1) return -1; repeat += 11; for (; repeat0 = repeat - 1, repeat > 0; repeat = repeat0, i = i0) { i0 = i + 1; if (!(i >= 0 && i < t1)) return A.ioore(codeLengths, i); codeLengths[i] = 0; } prev = 0; break; default: if (code < 0 || code > 15) return -1; i0 = i + 1; if (!(i >= 0 && i < t1)) return A.ioore(codeLengths, i); codeLengths[i] = code; i = i0; prev = code; break; } } return 0; } }; A.ZLibDecoderBase.prototype = {}; A.ZLibDecoder.prototype = {}; A.ZLibEncoder.prototype = { encode$2$level(data, level) { var output, fcheck, t2, adler32, input, t3, t4, t5, t6, t7, t8, _s11_ = "_windowSize", _s9_ = "_hashBits", _s9_0 = "_hashSize", _s14_ = "_litBufferSize", t1 = type$.List_int; t1._as(data); output = A.OutputStream$(1, 32768); output.writeByte$1(120); for (fcheck = 0; t2 = (fcheck | 0) >>> 0, (30720 + t2) % 31 !== 0;) ++fcheck; output.writeByte$1(t2); adler32 = A.getAdler32(data); input = A.InputStream$(data, 1, null, 0); t2 = A._HuffmanTree$(); t3 = A._HuffmanTree$(); t4 = A._HuffmanTree$(); t5 = new Uint16Array(16); t6 = new Uint32Array(573); t7 = new Uint8Array(573); t8 = A.OutputStream$(0, 32768); t5 = new A.Deflate(input, t8, t2, t3, t4, t5, t6, t7); if (level == null || level === -1) level = 6; if (typeof level !== "number") return level.$lt(); if (level <= 9) t6 = false; else t6 = true; if (t6) A.throwExpression(A.ArchiveException$("Invalid Deflate parameter")); $.Deflate____config._value = t5._getConfig$1(level); t5.__Deflate__dynamicLengthTree = new Uint16Array(1146); t5.__Deflate__dynamicDistTree = new Uint16Array(122); t5.__Deflate__bitLengthTree = new Uint16Array(78); t5.__Deflate__windowBits = 15; t6 = B.JSInt_methods.$shl(1, A._lateReadCheck(15, "_windowBits")); t5.__Deflate__windowSize = t6; t5.__Deflate__windowMask = A._lateReadCheck(t6, _s11_) - 1; t5.__Deflate__hashBits = 15; t6 = B.JSInt_methods.$shl(1, A._lateReadCheck(15, _s9_)); t5.__Deflate__hashSize = t6; t5.__Deflate__hashMask = A._lateReadCheck(t6, _s9_0) - 1; t5.__Deflate__hashShift = B.JSInt_methods._tdivFast$1(A._lateReadCheck(t5.__Deflate__hashBits, _s9_) + 3 - 1, 3); t6 = A._lateReadCheck(t5.__Deflate__windowSize, _s11_); t5.__Deflate__window = new Uint8Array(t6 * 2); t6 = A._lateReadCheck(t5.__Deflate__windowSize, _s11_); t5.__Deflate__prev = new Uint16Array(t6); t6 = A._lateReadCheck(t5.__Deflate__hashSize, _s9_0); t5.__Deflate__head = new Uint16Array(t6); t5.__Deflate__litBufferSize = 16384; t6 = A._lateReadCheck(16384, _s14_); t5.__Deflate__pendingBuffer = new Uint8Array(t6 * 4); t5.__Deflate__pendingBufferSize = A._lateReadCheck(t5.__Deflate__litBufferSize, _s14_) * 4; t5.__Deflate__dbuf = A._lateReadCheck(t5.__Deflate__litBufferSize, _s14_); t5.__Deflate__lbuf = 3 * A._lateReadCheck(t5.__Deflate__litBufferSize, _s14_); t5.__Deflate__level = A._asInt(level); t5.__Deflate__pendingOut = t5.__Deflate__pending = t5.__Deflate__strategy = 0; t5._status = 113; t5.crc32 = 0; t2.___HuffmanTree_dynamicTree = A._lateReadCheck(t5.__Deflate__dynamicLengthTree, "_dynamicLengthTree"); t6 = type$._StaticTree; t2.___HuffmanTree_staticDesc = t6._as($.$get$_StaticTree_staticLDesc()); t3.___HuffmanTree_dynamicTree = A._lateReadCheck(t5.__Deflate__dynamicDistTree, "_dynamicDistTree"); t3.___HuffmanTree_staticDesc = t6._as($.$get$_StaticTree_staticDDesc()); t4.___HuffmanTree_dynamicTree = A._lateReadCheck(t5.__Deflate__bitLengthTree, "_bitLengthTree"); t4.___HuffmanTree_staticDesc = t6._as($.$get$_StaticTree_staticBlDesc()); t5.__Deflate__numValidBits = t5.__Deflate__bitBuffer = 0; t5.__Deflate__lastEOBLen = 8; t5._initBlock$0(); t5._lmInit$0(); t5._deflate$1(4); t5._flushPending$0(); output.writeBytes$1(t1._as(A.NativeUint8List_NativeUint8List$view(t8._output_stream$_buffer.buffer, 0, t8.length))); output.writeUint32$1(adler32); t1 = A.NativeUint8List_NativeUint8List$view(output._output_stream$_buffer.buffer, 0, output.length); return t1; }, encode$1(data) { return this.encode$2$level(data, null); } }; A.BlurHash.prototype = {}; A.BlurHashEncodeException.prototype = { toString$0(_) { return "Exception: " + this.message; } }; A.ColorTriplet.prototype = { toString$0(_) { return "ColorTriplet(" + A.S(this.r) + ", " + A.S(this.g) + ", " + A.S(this.b) + ")"; } }; A.ExifData.prototype = { ExifData$from$1(other) { var _length, _list, i, t1; if (other != null && other.rawData != null) { _length = other.rawData.length; _list = J.JSArray_JSArray$allocateGrowable(_length, type$.Uint8List); for (i = 0; i < _length; ++i) { t1 = other.rawData; if (!(i < t1.length)) return A.ioore(t1, i); t1 = t1[i]; _list[i] = new Uint8Array(t1.subarray(0, A._checkValidRange(0, null, t1.length))); } this.set$rawData(_list); } }, set$rawData(rawData) { this.rawData = type$.nullable_List_Uint8List._as(rawData); } }; A.BitmapCompression.prototype = { toString$0(_) { return "BitmapCompression." + this._core$_name; } }; A.BitmapFileHeader.prototype = { toJson$0() { return A.LinkedHashMap_LinkedHashMap$_literal(["offset", A._lateReadCheck(this.__BitmapFileHeader_offset, "offset"), "fileLength", A._lateReadCheck(this.__BitmapFileHeader_fileLength, "fileLength"), "fileType", 19778], type$.String, type$.int); } }; A.BmpInfo.prototype = { get$ignoreAlphaChannel() { var t1 = this.headerSize; if (t1 !== 40) t1 = t1 === 124 && this.v5alphaMask === 0; else t1 = true; return t1; }, get$height(_) { return Math.abs(this._bmp_info$_height); }, BmpInfo$2$fileHeader(p, fileHeader) { var _this = this; if (B.JSArray_methods.contains$1(A._setArrayType([1, 4, 8], type$.JSArray_int), _this.bpp)) _this.readPalette$1(p); if (_this.headerSize === 124) { _this.v5redMask = p.readUint32$0(); _this.v5greenMask = p.readUint32$0(); _this.v5blueMask = p.readUint32$0(); _this.v5alphaMask = p.readUint32$0(); } }, readPalette$1(p) { var _this = this, colors = _this.totalColors; if (colors === 0) colors = B.JSInt_methods._shlPositive$1(1, _this.bpp); _this.set$colorPalette(A.Iterable_Iterable$generate(colors, new A.BmpInfo_readPalette_closure(_this, p, _this.headerSize === 12 ? 3 : 4), type$.int).toList$0(0)); }, _readRgba$2$aDefault(input, aDefault) { var b, g, r, a; if (!B.JSInt_methods.get$isNegative(this._bmp_info$_height)) { b = input.readByte$0(); g = input.readByte$0(); r = input.readByte$0(); a = aDefault == null ? input.readByte$0() : aDefault; return A.getColor(r, g, b, this.get$ignoreAlphaChannel() ? 255 : a); } else { r = input.readByte$0(); b = input.readByte$0(); g = input.readByte$0(); a = aDefault == null ? input.readByte$0() : aDefault; return A.getColor(r, b, g, this.get$ignoreAlphaChannel() ? 255 : a); } }, _readRgba$1(input) { return this._readRgba$2$aDefault(input, null); }, decodeRgba$2(input, pixel) { var t1, b, left, right, t2, _this = this; type$.void_Function_int._as(pixel); if (_this.colorPalette != null) { t1 = _this.bpp; if (t1 === 4) { b = input.readByte$0(); left = B.JSInt_methods._shrOtherPositive$1(b, 4); right = b & 15; t1 = _this.colorPalette; if (!(left < t1.length)) return A.ioore(t1, left); pixel.call$1(t1[left]); t1 = _this.colorPalette; if (!(right < t1.length)) return A.ioore(t1, right); pixel.call$1(t1[right]); return; } else if (t1 === 8) { b = input.readByte$0(); t1 = _this.colorPalette; if (!(b >= 0 && b < t1.length)) return A.ioore(t1, b); pixel.call$1(t1[b]); return; } } t1 = _this.compression; if (t1 === B.BitmapCompression_0 && _this.bpp === 32) return pixel.call$1(_this._readRgba$1(input)); else { t2 = _this.bpp; if (t2 === 32 && t1 === B.BitmapCompression_1) return pixel.call$1(_this._readRgba$1(input)); else if (t2 === 24) return pixel.call$1(_this._readRgba$2$aDefault(input, 255)); else throw A.wrapException(A.ImageException$("Unsupported bpp (" + t2 + ") or compression (" + t1.toString$0(0) + ").")); } }, _compToString$0() { switch (this.compression.index) { case 0: return "BI_BITFIELDS"; case 1: return "none"; } }, toString$0(_) { var _this = this; return A._JsonStringStringifier_stringify(A.LinkedHashMap_LinkedHashMap$_literal(["headerSize", _this.headerSize, "width", _this.BmpInfo_width, "height", _this.get$height(_this), "planes", _this.planes, "bpp", _this.bpp, "file", _this.file.toJson$0(), "compression", _this._compToString$0(), "imageSize", _this.imageSize, "xppm", _this.xppm, "yppm", _this.yppm, "totalColors", _this.totalColors, "importantColors", _this.importantColors, "readBottomUp", !B.JSInt_methods.get$isNegative(_this._bmp_info$_height), "v5redMask", A.debugBits32(_this.v5redMask), "v5greenMask", A.debugBits32(_this.v5greenMask), "v5blueMask", A.debugBits32(_this.v5blueMask), "v5alphaMask", A.debugBits32(_this.v5alphaMask)], type$.String, type$.Object), null, " "); }, set$colorPalette(colorPalette) { this.colorPalette = type$.nullable_List_int._as(colorPalette); } }; A.BmpInfo_readPalette_closure.prototype = { call$1(i) { var t1; A._asInt(i); t1 = this.colorBytes === 3 ? 100 : null; return this.$this._readRgba$2$aDefault(this.p, t1); }, $signature: 18 }; A.BmpDecoder.prototype = { startDecode$1(bytes) { var t1, _null = null; type$.List_int._as(bytes); if (!A.BitmapFileHeader_isValidFile(A.InputBuffer$(bytes, false, _null, 0))) return _null; t1 = A.InputBuffer$(bytes, false, _null, 0); this.__BmpDecoder__input = t1; return this.info = A.BmpInfo$(A._lateReadCheck(t1, "_input"), _null); }, decodeFrame$1(frame) { var t1, t2, rowStride, t3, image, y, y0, line, bytes, _box_0, _box_00, _this = this; A._lateReadCheck(_this.__BmpDecoder__input, "_input").offset = A._lateReadCheck(_this.info.file.__BitmapFileHeader_offset, "offset"); t1 = _this.info; t2 = t1.BmpInfo_width; rowStride = B.JSInt_methods._shrOtherPositive$1(t2 * t1.bpp, 3); t3 = B.JSInt_methods.$mod(rowStride, 4); if (t3 !== 0) rowStride += 4 - t3; image = A.Image$(t2, t1.get$height(t1), B.Channels_1, null, null); for (y = image.height - 1, t1 = image.width, y0 = y; y0 >= 0; --y0) { t2 = _this.info._bmp_info$_height; line = !(t2 === 0 ? 1 / t2 < 0 : t2 < 0) ? y0 : y - y0; t2 = A._lateReadCheck(_this.__BmpDecoder__input, "_input"); bytes = t2.subset$1(rowStride); t2.offset = t2.offset + (bytes.end - bytes.offset); _box_0 = {}; for (_box_0.x = 0; _box_0.x < t1; _box_00 = {}, _box_00.x = _box_0.x, _box_0 = _box_00) _this.info.decodeRgba$2(bytes, new A.BmpDecoder_decodeFrame_closure(_box_0, image, line)); } return image; }, decodeImage$1(data) { type$.List_int._as(data); if (!A.BitmapFileHeader_isValidFile(A.InputBuffer$(data, false, null, 0))) return null; this.startDecode$1(data); return this.decodeFrame$1(0); } }; A.BmpDecoder_decodeFrame_closure.prototype = { call$1(color) { return this.image.setPixel$3(this._box_0.x++, this.line, color); }, $signature: 7 }; A.DibDecoder.prototype = {}; A.BmpEncoder.prototype = { encodeImage$1(image) { var t3, t4, t5, y, pi, x, rgba, out = A.OutputBuffer$(false, 8192), bytesPerPixel = image.channels === B.Channels_0 ? 3 : 4, t1 = image.width, t2 = image.height, rgbSize = t1 * t2 * bytesPerPixel; out.writeUint16$1(19778); out.writeUint32$1(rgbSize + 54); out.writeUint32$1(0); out.writeUint32$1(54); out.writeUint32$1(40); out.writeUint32$1(t1); out.writeUint32$1(-t2); out.writeUint16$1(1); out.writeUint16$1(bytesPerPixel * 8); out.writeUint32$1(0); out.writeUint32$1(rgbSize); out.writeUint32$1(0); out.writeUint32$1(0); out.writeUint32$1(0); out.writeUint32$1(0); for (t3 = bytesPerPixel === 4, t4 = image.data, t5 = t4.length, y = 0, pi = 0; y < t2; ++y) for (x = 0; x < t1; ++x, ++pi) { if (!(pi >= 0 && pi < t5)) return A.ioore(t4, pi); rgba = t4[pi]; out.writeByte$1(rgba >>> 16 & 255); out.writeByte$1(rgba >>> 8 & 255); out.writeByte$1(rgba & 255); if (t3) out.writeByte$1(rgba >>> 24 & 255); } return A.NativeUint8List_NativeUint8List$view(out._buffer.buffer, 0, out.length); } }; A.CurEncoder.prototype = { colorPlanesOrXHotSpot$1(index) { return 0; }, bitsPerPixelOrYHotSpot$1(index) { return 0; }, get$type(_) { return 2; } }; A.DecodeInfo.prototype = {}; A.Decoder.prototype = {}; A.Encoder.prototype = {}; A.ExrAttribute.prototype = {}; A.InternalExrB44Compressor.prototype = { numScanLines$0() { return this._numScanLines; }, uncompress$5(input, x, y, width, height) { throw A.wrapException(A.ImageException$("B44 compression not yet supported.")); }, uncompress$3(input, x, y) { return this.uncompress$5(input, x, y, null, null); } }; A.ExrChannel.prototype = { get$type(_) { return A._lateReadCheck(this.__ExrChannel_type, "type"); }, ExrChannel$1(input) { var _this = this, t1 = input.readString$0(); _this.name = t1; if (t1.length === 0) { _this.name = null; return; } _this.__ExrChannel_type = input.readUint32$0(); input.readByte$0(); input.offset += 3; _this.__ExrChannel_xSampling = input.readUint32$0(); _this.__ExrChannel_ySampling = input.readUint32$0(); switch (A._lateReadCheck(_this.__ExrChannel_type, "type")) { case 0: _this.__ExrChannel_size = 4; break; case 1: _this.__ExrChannel_size = 2; break; case 2: _this.__ExrChannel_size = 4; break; default: throw A.wrapException(A.ImageException$("EXR Invalid pixel type: " + _this.get$type(_this))); } } }; A.ExrCompressor.prototype = { uncompress$5(input, x, y, width, height) { throw A.wrapException(A.ImageException$("Unsupported compression type")); }, uncompress$3(input, x, y) { return this.uncompress$5(input, x, y, null, null); } }; A.InternalExrCompressor.prototype = {}; A.ExrHufDec.prototype = { set$p(p) { this.p = type$.nullable_List_int._as(p); } }; A.ExrImage.prototype = { ExrImage$1(bytes) { var t1, part, t2, _i, _this = this, _s5_ = "flags", input = A.InputBuffer$(bytes, false, null, 0); if (input.readUint32$0() !== 20000630) throw A.wrapException(A.ImageException$("File is not an OpenEXR image file.")); t1 = _this.version = input.readByte$0(); if (t1 !== 2) throw A.wrapException(A.ImageException$("Cannot read version " + t1 + " image files.")); t1 = input.readUint24$0(); _this.__ExrImage_flags = t1; if ((A._lateReadCheck(t1, _s5_) & 4294967289) >>> 0 !== 0) throw A.wrapException(A.ImageException$("The file format version number's flag field contains unrecognized flags.")); if ((A._lateReadCheck(_this.__ExrImage_flags, _s5_) & 16) === 0) { part = A.InternalExrPart$((A._lateReadCheck(_this.__ExrImage_flags, _s5_) & 2) !== 0, input); if (part.width != null) B.JSArray_methods.add$1(_this._parts, part); } else for (t1 = _this._parts; true;) { part = A.InternalExrPart$((A._lateReadCheck(_this.__ExrImage_flags, _s5_) & 2) !== 0, input); if (part.width == null) break; B.JSArray_methods.add$1(t1, part); } t1 = _this._parts; t2 = t1.length; if (t2 === 0) throw A.wrapException(A.ImageException$("Error reading image header")); for (_i = 0; _i < t1.length; t1.length === t2 || (0, A.throwConcurrentModificationError)(t1), ++_i) t1[_i].readOffsets$1(input); _this._readImage$1(input); }, _readImage$1(input) { var t1, pi, part, framebuffer, t2, t3, ci, ch, t4, t5, t6, t7, t8, _this = this; for (t1 = _this._parts, pi = 0; pi < t1.length; ++pi) { part = t1[pi]; framebuffer = part.framebuffer; for (t2 = part.channels, t3 = framebuffer.slices, ci = 0; ci < t2.length; ++ci) { ch = t2[ci]; if (!t3.containsKey$1(0, ch.name)) { t4 = part.width; t4.toString; _this.width = t4; t5 = part.height; t5.toString; _this.height = t5; t6 = ch.name; t7 = A._lateReadCheck(ch.__ExrChannel_type, "type") === 0 ? 0 : 3; t8 = 8 * A._lateReadCheck(ch.__ExrChannel_size, "size"); framebuffer.addSlice$1(new A.HdrSlice(t6, t4, t5, t7, t8, A.HdrSlice_allocateDataForType(t4 * t5, t7, t8))); } } if (part._tiled) _this._readTiledPart$2(pi, input); else _this._readScanlinePart$2(pi, input); } }, _readTiledPart$2(pi, input) { var part, multiPart, compressor, offsets, imgData, t2, ly, l, t3, lx, ty, oi, t4, tx, tileX, tileY, bytes, ty0, t5, t6, uncompressedData, tileWidth, tileHeight, len, numChannels, si, yi, ci, ch, slice, tx0, xx, bi, si0, di, _this = this, t1 = _this._parts; if (!(pi < t1.length)) return A.ioore(t1, pi); part = t1[pi]; multiPart = (A._lateReadCheck(_this.__ExrImage_flags, "flags") & 16) !== 0; compressor = part._compressor; offsets = part._offsets; imgData = A.InputBuffer$from(input, null, 0); t1 = part.channels; t2 = part.framebuffer.slices; ly = 0; l = 0; while (true) { t3 = part._numYLevels; t3.toString; if (!(ly < t3)) break; lx = 0; while (true) { t3 = part._numXLevels; t3.toString; if (!(lx < t3)) break; t3 = l !== 0; ty = 0; oi = 0; while (true) { t4 = part._numYTiles; if (!(ly < t4.length)) return A.ioore(t4, ly); if (!(ty < t4[ly])) break; tx = 0; while (true) { t4 = part._numXTiles; if (!(lx < t4.length)) return A.ioore(t4, lx); if (!(tx < t4[lx])) break; if (t3) break; if (!(l >= 0 && l < offsets.length)) return A.ioore(offsets, l); t4 = offsets[l]; if (!(oi >= 0 && oi < t4.length)) return A.ioore(t4, oi); imgData.offset = t4[oi]; if (multiPart) if (imgData.readUint32$0() !== pi) throw A.wrapException(A.ImageException$("Invalid Image Data")); tileX = imgData.readUint32$0(); tileY = imgData.readUint32$0(); imgData.readUint32$0(); imgData.readUint32$0(); bytes = imgData.subset$1(imgData.readUint32$0()); imgData.offset = imgData.offset + (bytes.end - bytes.offset); t4 = part._tileHeight; t4.toString; ty0 = tileY * t4; t5 = part._tileWidth; t5.toString; compressor.toString; t6 = _this.width; if (typeof t6 !== "number") return A.iae(t6); t6 = _this.height; if (typeof t6 !== "number") return A.iae(t6); uncompressedData = compressor.uncompress$5(bytes, tileX * t5, ty0, t5, t4); tileWidth = compressor.decodedWidth; tileHeight = compressor.decodedHeight; len = uncompressedData.length; numChannels = t1.length; si = 0; yi = 0; while (true) { if (yi < tileHeight) { t4 = _this.height; if (typeof t4 !== "number") return A.iae(t4); t4 = ty0 < t4; } else t4 = false; if (!t4) break; for (ci = 0; ci < numChannels; ++ci) { if (!(ci < t1.length)) return A.ioore(t1, ci); ch = t1[ci]; t4 = t2.$index(0, ch.name).data.buffer; slice = new Uint8Array(t4, 0); if (si >= len) break; t4 = part._tileWidth; t4.toString; tx0 = tileX * t4; for (t4 = slice.length, xx = 0; xx < tileWidth; ++xx, ++tx0) for (bi = 0; bi < A._lateReadCheck(ch.__ExrChannel_size, "size"); ++bi, si = si0) { t5 = part.width; t5.toString; if (tx0 < t5) { t6 = part.height; t6.toString; t6 = ty0 < t6; } else t6 = false; si0 = si + 1; if (t6) { di = (ty0 * t5 + tx0) * A._lateReadCheck(ch.__ExrChannel_size, "size") + bi; if (!(si >= 0 && si < len)) return A.ioore(uncompressedData, si); t5 = uncompressedData[si]; if (!(di >= 0 && di < t4)) return A.ioore(slice, di); slice[di] = t5; } } } ++yi; ++ty0; } ++tx; ++oi; } ++ty; } ++lx; ++l; } ++ly; } }, _readScanlinePart$2(pi, input) { var part, multiPart, compressor, offsets, linesInBuffer, t2, fbi, imgData, t3, t4, t5, yy, _i, t6, t7, bytes, uncompressedData, len, numChannels, yi, si, ci, ch, slice, xx, bi, si0, t8, t1 = this._parts; if (!(pi < t1.length)) return A.ioore(t1, pi); part = t1[pi]; multiPart = (A._lateReadCheck(this.__ExrImage_flags, "flags") & 16) !== 0; compressor = part._compressor; t1 = part._offsets; if (0 >= t1.length) return A.ioore(t1, 0); offsets = t1[0]; linesInBuffer = part._linesInBuffer; t1 = part.channels; t2 = t1.length; fbi = new Uint32Array(t2); imgData = A.InputBuffer$from(input, null, 0); for (t3 = offsets.length, t4 = part.framebuffer.slices, t5 = compressor != null, yy = 0, _i = 0; _i < t3; ++_i) { imgData.offset = offsets[_i]; if (multiPart) if (imgData.readUint32$0() !== pi) throw A.wrapException(A.ImageException$("Invalid Image Data")); t6 = imgData.readUint32$0(); t7 = $.$get$__uint32(); t7[0] = t6; t6 = $.$get$__uint32ToInt32(); if (0 >= t6.length) return A.ioore(t6, 0); t7[0] = imgData.readUint32$0(); if (0 >= t6.length) return A.ioore(t6, 0); bytes = imgData.subset$1(t6[0]); imgData.offset = imgData.offset + (bytes.end - bytes.offset); uncompressedData = t5 ? compressor.uncompress$3(bytes, 0, yy) : bytes.toUint8List$0(); len = uncompressedData.length; numChannels = t1.length; linesInBuffer.toString; yi = 0; while (true) { if (yi < linesInBuffer) { t6 = this.height; if (typeof t6 !== "number") return A.iae(t6); t6 = yy < t6; } else t6 = false; if (!t6) break; t6 = part._offsetInLineBuffer; if (!(yy >= 0 && yy < t6.length)) return A.ioore(t6, yy); si = t6[yy]; if (si >= len) break; for (ci = 0; ci < numChannels; ++ci) { if (!(ci < t1.length)) return A.ioore(t1, ci); ch = t1[ci]; t6 = t4.$index(0, ch.name).data.buffer; slice = new Uint8Array(t6, 0); if (si >= len) break; t6 = slice.length; xx = 0; while (true) { t7 = part.width; t7.toString; if (!(xx < t7)) break; for (bi = 0; bi < A._lateReadCheck(ch.__ExrChannel_size, "size"); ++bi, si = si0) { if (!(ci < t2)) return A.ioore(fbi, ci); t7 = fbi[ci]; if (!(ci < t2)) return A.ioore(fbi, ci); fbi[ci] = t7 + 1; si0 = si + 1; if (!(si >= 0 && si < len)) return A.ioore(uncompressedData, si); t8 = uncompressedData[si]; if (!(t7 < t6)) return A.ioore(slice, t7); slice[t7] = t8; } ++xx; } } ++yi; ++yy; } } } }; A.ExrPart.prototype = { ExrPart$2(_tiled, input, _box_0) { var t1, t2, t3, t4, $name, bytes, channel, t5, t6, t7, t8, t9, s, num, w, h, _i, ch, nBytes, y, maxBytesPerLine, offset, i, _this = this, _s14_ = "chromaticities", _s10_ = "dataWindow", _s25_ = "Unknown LevelMode format.", _s13_ = "_bytesPerLine"; for (t1 = _this.attributes, t2 = type$.JSArray_int, t3 = type$.List_int, t4 = _this.channels; true;) { $name = input.readString$0(); if ($name.length === 0) break; input.readString$0(); bytes = input.subset$1(input.readUint32$0()); input.offset = input.offset + (bytes.end - bytes.offset); t1.$indexSet(0, $name, new A.ExrAttribute()); switch ($name) { case "channels": for (; true;) { channel = new A.ExrChannel(); channel.ExrChannel$1(bytes); if (channel.name == null) break; B.JSArray_methods.add$1(t4, channel); } break; case "chromaticities": t5 = new Float32Array(8); _this.__ExrPart_chromaticities = t5; t5 = A._lateReadCheck(t5, _s14_); t6 = bytes.readUint32$0(); t7 = $.$get$__uint32(); t7[0] = t6; t6 = $.$get$__uint32ToFloat32(); if (0 >= t6.length) return A.ioore(t6, 0); t8 = t6[0]; if (0 >= t5.length) return A.ioore(t5, 0); t5[0] = t8; t8 = A._lateReadCheck(_this.__ExrPart_chromaticities, _s14_); t7[0] = bytes.readUint32$0(); if (0 >= t6.length) return A.ioore(t6, 0); t5 = t6[0]; if (1 >= t8.length) return A.ioore(t8, 1); t8[1] = t5; t5 = A._lateReadCheck(_this.__ExrPart_chromaticities, _s14_); t7[0] = bytes.readUint32$0(); if (0 >= t6.length) return A.ioore(t6, 0); t8 = t6[0]; if (2 >= t5.length) return A.ioore(t5, 2); t5[2] = t8; t8 = A._lateReadCheck(_this.__ExrPart_chromaticities, _s14_); t7[0] = bytes.readUint32$0(); if (0 >= t6.length) return A.ioore(t6, 0); t5 = t6[0]; if (3 >= t8.length) return A.ioore(t8, 3); t8[3] = t5; t5 = A._lateReadCheck(_this.__ExrPart_chromaticities, _s14_); t7[0] = bytes.readUint32$0(); if (0 >= t6.length) return A.ioore(t6, 0); t8 = t6[0]; if (4 >= t5.length) return A.ioore(t5, 4); t5[4] = t8; t8 = A._lateReadCheck(_this.__ExrPart_chromaticities, _s14_); t7[0] = bytes.readUint32$0(); if (0 >= t6.length) return A.ioore(t6, 0); t5 = t6[0]; if (5 >= t8.length) return A.ioore(t8, 5); t8[5] = t5; t5 = A._lateReadCheck(_this.__ExrPart_chromaticities, _s14_); t7[0] = bytes.readUint32$0(); if (0 >= t6.length) return A.ioore(t6, 0); t8 = t6[0]; if (6 >= t5.length) return A.ioore(t5, 6); t5[6] = t8; t8 = A._lateReadCheck(_this.__ExrPart_chromaticities, _s14_); t7[0] = bytes.readUint32$0(); if (0 >= t6.length) return A.ioore(t6, 0); t6 = t6[0]; if (7 >= t8.length) return A.ioore(t8, 7); t8[7] = t6; break; case "compression": t5 = bytes.buffer; t6 = bytes.offset++; if (!(t6 >= 0 && t6 < t5.length)) return A.ioore(t5, t6); t6 = t5[t6]; _this._compressionType = t6; if (t6 > 7) throw A.wrapException(A.ImageException$("EXR Invalid compression type")); break; case "dataWindow": t5 = bytes.readUint32$0(); t6 = $.$get$__uint32(); t6[0] = t5; t5 = $.$get$__uint32ToInt32(); if (0 >= t5.length) return A.ioore(t5, 0); t7 = t5[0]; t6[0] = bytes.readUint32$0(); if (0 >= t5.length) return A.ioore(t5, 0); t8 = t5[0]; t6[0] = bytes.readUint32$0(); if (0 >= t5.length) return A.ioore(t5, 0); t9 = t5[0]; t6[0] = bytes.readUint32$0(); if (0 >= t5.length) return A.ioore(t5, 0); _this.set$__ExrPart_dataWindow(t3._as(A._setArrayType([t7, t8, t9, t5[0]], t2))); t5 = J.$index$asx(A._lateReadCheck(_this.__ExrPart_dataWindow, _s10_), 2); t9 = J.$index$asx(A._lateReadCheck(_this.__ExrPart_dataWindow, _s10_), 0); if (typeof t5 !== "number") return t5.$sub(); if (typeof t9 !== "number") return A.iae(t9); _this.set$width(0, t5 - t9 + 1); t9 = J.$index$asx(A._lateReadCheck(_this.__ExrPart_dataWindow, _s10_), 3); t5 = J.$index$asx(A._lateReadCheck(_this.__ExrPart_dataWindow, _s10_), 1); if (typeof t9 !== "number") return t9.$sub(); if (typeof t5 !== "number") return A.iae(t5); _this.set$height(0, t9 - t5 + 1); break; case "displayWindow": t5 = bytes.readUint32$0(); t6 = $.$get$__uint32(); t6[0] = t5; t5 = $.$get$__uint32ToInt32(); if (0 >= t5.length) return A.ioore(t5, 0); t7 = t5[0]; t6[0] = bytes.readUint32$0(); if (0 >= t5.length) return A.ioore(t5, 0); t8 = t5[0]; t6[0] = bytes.readUint32$0(); if (0 >= t5.length) return A.ioore(t5, 0); t9 = t5[0]; t6[0] = bytes.readUint32$0(); if (0 >= t5.length) return A.ioore(t5, 0); _this.set$displayWindow(A._setArrayType([t7, t8, t9, t5[0]], t2)); break; case "lineOrder": break; case "pixelAspectRatio": t5 = bytes.readUint32$0(); $.$get$__uint32()[0] = t5; t5 = $.$get$__uint32ToFloat32(); if (0 >= t5.length) return A.ioore(t5, 0); break; case "screenWindowCenter": t5 = bytes.readUint32$0(); t6 = $.$get$__uint32(); t6[0] = t5; t5 = $.$get$__uint32ToFloat32(); if (0 >= t5.length) return A.ioore(t5, 0); t6[0] = bytes.readUint32$0(); if (0 >= t5.length) return A.ioore(t5, 0); break; case "screenWindowWidth": t5 = bytes.readUint32$0(); $.$get$__uint32()[0] = t5; t5 = $.$get$__uint32ToFloat32(); if (0 >= t5.length) return A.ioore(t5, 0); break; case "tiles": _this._tileWidth = bytes.readUint32$0(); _this._tileHeight = bytes.readUint32$0(); t5 = bytes.buffer; t6 = bytes.offset++; if (!(t6 >= 0 && t6 < t5.length)) return A.ioore(t5, t6); t6 = t5[t6]; _this._tileLevelMode = t6 & 15; _this._tileRoundingMode = B.JSInt_methods._shrOtherPositive$1(t6, 4) & 15; break; case "type": s = bytes.readString$0(); if (s !== "deepscanline") if (s !== "deeptile") throw A.wrapException(A.ImageException$("EXR Invalid type: " + s)); break; default: break; } } if (_this._tiled) { t1 = J.$index$asx(A._lateReadCheck(_this.__ExrPart_dataWindow, _s10_), 0); t2 = J.$index$asx(A._lateReadCheck(_this.__ExrPart_dataWindow, _s10_), 2); t3 = J.$index$asx(A._lateReadCheck(_this.__ExrPart_dataWindow, _s10_), 1); t4 = J.$index$asx(A._lateReadCheck(_this.__ExrPart_dataWindow, _s10_), 3); switch (_this._tileLevelMode) { case 0: num = 1; break; case 1: t1 = Math.max(t2 - t1 + 1, t4 - t3 + 1); t2 = _this._tileRoundingMode; A._asInt(t1); num = (t2 === 0 ? _this._floorLog2$1(t1) : _this._ceilLog2$1(t1)) + 1; break; case 2: w = t2 - t1 + 1; num = (_this._tileRoundingMode === 0 ? _this._floorLog2$1(w) : _this._ceilLog2$1(w)) + 1; break; default: A.throwExpression(A.ImageException$(_s25_)); num = 0; } _this._numXLevels = num; t1 = J.$index$asx(A._lateReadCheck(_this.__ExrPart_dataWindow, _s10_), 0); t2 = J.$index$asx(A._lateReadCheck(_this.__ExrPart_dataWindow, _s10_), 2); t3 = J.$index$asx(A._lateReadCheck(_this.__ExrPart_dataWindow, _s10_), 1); t4 = J.$index$asx(A._lateReadCheck(_this.__ExrPart_dataWindow, _s10_), 3); switch (_this._tileLevelMode) { case 0: num = 1; break; case 1: t1 = Math.max(t2 - t1 + 1, t4 - t3 + 1); t2 = _this._tileRoundingMode; A._asInt(t1); num = (t2 === 0 ? _this._floorLog2$1(t1) : _this._ceilLog2$1(t1)) + 1; break; case 2: h = t4 - t3 + 1; num = (_this._tileRoundingMode === 0 ? _this._floorLog2$1(h) : _this._ceilLog2$1(h)) + 1; break; default: A.throwExpression(A.ImageException$(_s25_)); num = 0; } _this._numYLevels = num; if (_this._tileLevelMode !== 2) _this._numYLevels = 1; t1 = _this._numXLevels; t1.toString; _this.set$_numXTiles(_this._calculateNumTiles$5(t1, J.$index$asx(A._lateReadCheck(_this.__ExrPart_dataWindow, _s10_), 0), J.$index$asx(A._lateReadCheck(_this.__ExrPart_dataWindow, _s10_), 2), _this._tileWidth, _this._tileRoundingMode)); t1 = _this._numYLevels; t1.toString; _this.set$_numYTiles(_this._calculateNumTiles$5(t1, J.$index$asx(A._lateReadCheck(_this.__ExrPart_dataWindow, _s10_), 1), J.$index$asx(A._lateReadCheck(_this.__ExrPart_dataWindow, _s10_), 3), _this._tileHeight, _this._tileRoundingMode)); t1 = _this._calculateBytesPerPixel$0(); _this.__ExrPart__bytesPerPixel = t1; t1 = A._lateReadCheck(t1, "_bytesPerPixel"); t2 = _this._tileWidth; t2.toString; t2 = t1 * t2; _this._maxBytesPerTileLine = t2; _this._compressor = A.ExrCompressor_ExrCompressor(_this._compressionType, _this, t2, _this._tileHeight); _box_0.ly = _box_0.lx = 0; t2 = _this._numXLevels; t2.toString; t1 = _this._numYLevels; t1.toString; _this.set$_offsets(A.List_List$generate(t2 * t1, new A.ExrPart_closure(_box_0, _this), true, type$.Uint32List)); } else { t1 = _this.height; t1.toString; _this.__ExrPart__bytesPerLine = new Uint32Array(t1 + 1); for (t1 = t4.length, _i = 0; _i < t4.length; t4.length === t1 || (0, A.throwConcurrentModificationError)(t4), ++_i) { ch = t4[_i]; t2 = A._lateReadCheck(ch.__ExrChannel_size, "size"); t3 = _this.width; t3.toString; nBytes = B.JSInt_methods.$tdiv(t2 * t3, A._lateReadCheck(ch.__ExrChannel_xSampling, "xSampling")); y = 0; while (true) { t2 = _this.height; t2.toString; if (!(y < t2)) break; if (B.JSInt_methods.$mod(y + J.$index$asx(A._lateReadCheck(_this.__ExrPart_dataWindow, _s10_), 1), A._lateReadCheck(ch.__ExrChannel_ySampling, "ySampling")) === 0) { t2 = A._lateReadCheck(_this.__ExrPart__bytesPerLine, _s13_); if (!(y < t2.length)) return A.ioore(t2, y); t2[y] = t2[y] + nBytes; } ++y; } } maxBytesPerLine = 0; y = 0; while (true) { t1 = _this.height; t1.toString; if (!(y < t1)) break; t1 = A._lateReadCheck(_this.__ExrPart__bytesPerLine, _s13_); if (!(y < t1.length)) return A.ioore(t1, y); maxBytesPerLine = Math.max(maxBytesPerLine, t1[y]); ++y; } t1 = A.ExrCompressor_ExrCompressor(_this._compressionType, _this, maxBytesPerLine, null); _this._compressor = t1; _this._linesInBuffer = t1.numScanLines$0(); t1 = A._lateReadCheck(_this.__ExrPart__bytesPerLine, _s13_).length; _this._offsetInLineBuffer = new Uint32Array(t1); for (offset = 0, i = 0; i <= A._lateReadCheck(_this.__ExrPart__bytesPerLine, _s13_).length - 1; ++i) { t1 = _this._linesInBuffer; t1.toString; if (B.JSInt_methods.$mod(i, t1) === 0) offset = 0; t1 = _this._offsetInLineBuffer; if (!(i < t1.length)) return A.ioore(t1, i); t1[i] = offset; t1 = A._lateReadCheck(_this.__ExrPart__bytesPerLine, _s13_); if (!(i < t1.length)) return A.ioore(t1, i); offset += t1[i]; } t1 = _this.height; t1.toString; t2 = _this._linesInBuffer; t2.toString; t2 = B.JSInt_methods.$tdiv(t1 + t2, t2); _this.set$_offsets(A._setArrayType([new Uint32Array(t2 - 1)], type$.JSArray_nullable_Uint32List)); } }, _floorLog2$1(x) { var y; for (y = 0; x > 1;) { ++y; x = B.JSInt_methods._shrOtherPositive$1(x, 1); } return y; }, _ceilLog2$1(x) { var y, r; for (y = 0, r = 0; x > 1;) { if ((x & 1) !== 0) r = 1; ++y; x = B.JSInt_methods._shrOtherPositive$1(x, 1); } return y + r; }, _calculateBytesPerPixel$0() { var t1, t2, bytesPerPixel, _i; for (t1 = this.channels, t2 = t1.length, bytesPerPixel = 0, _i = 0; _i < t1.length; t1.length === t2 || (0, A.throwConcurrentModificationError)(t1), ++_i) bytesPerPixel += A._lateReadCheck(t1[_i].__ExrChannel_size, "size"); return bytesPerPixel; }, _calculateNumTiles$5(numLevels, min, max, size, rmode) { var t1, a, i, b, size0, t2, _list = J.JSArray_JSArray$allocateFixed(numLevels, type$.int); for (t1 = rmode === 1, a = max - min + 1, i = 0; i < numLevels; ++i) { b = B.JSInt_methods._shlPositive$1(1, i); size0 = B.JSInt_methods.$tdiv(a, b); if (t1 && size0 * b < a) ++size0; t2 = Math.max(size0, 1); size.toString; _list[i] = B.JSInt_methods.$tdiv(t2 + size - 1, size); } return _list; }, set$displayWindow(displayWindow) { type$.nullable_List_int._as(displayWindow); }, set$__ExrPart_dataWindow(__ExrPart_dataWindow) { this.__ExrPart_dataWindow = type$.List_int._as(__ExrPart_dataWindow); }, set$width(_, width) { this.width = A._asIntQ(width); }, set$height(_, height) { this.height = A._asIntQ(height); }, set$_offsets(_offsets) { this._offsets = type$.nullable_List_nullable_Uint32List._as(_offsets); }, set$_numXTiles(_numXTiles) { this._numXTiles = type$.nullable_List_nullable_int._as(_numXTiles); }, set$_numYTiles(_numYTiles) { this._numYTiles = type$.nullable_List_nullable_int._as(_numYTiles); } }; A.ExrPart_closure.prototype = { call$1(l) { var t5, t6, result, lx, t1 = this.$this, t2 = t1._numXTiles, t3 = this._box_0, t4 = t3.lx; if (!(t4 < t2.length)) return A.ioore(t2, t4); t2 = t2[t4]; t5 = t1._numYTiles; t6 = t3.ly; if (!(t6 < t5.length)) return A.ioore(t5, t6); t5 = t5[t6]; result = new Uint32Array(t2 * t5); lx = t4 + 1; t3.lx = lx; if (lx === t1._numXLevels) { t3.lx = 0; t3.ly = t6 + 1; } return result; }, $signature: 54 }; A.InternalExrPart.prototype = { readOffsets$1(input) { var i, j, t1, numOffsets, t2, _this = this; if (_this._tiled) for (i = 0; i < _this._offsets.length; ++i) { j = 0; while (true) { t1 = _this._offsets; if (!(i < t1.length)) return A.ioore(t1, i); t1 = t1[i]; if (!(j < t1.length)) break; t1[j] = input.readUint64$0(); ++j; } } else { t1 = _this._offsets; if (0 >= t1.length) return A.ioore(t1, 0); numOffsets = t1[0].length; for (i = 0; i < numOffsets; ++i) { t1 = _this._offsets; if (0 >= t1.length) return A.ioore(t1, 0); t1 = t1[0]; t2 = input.readUint64$0(); if (!(i < t1.length)) return A.ioore(t1, i); t1[i] = t2; } } } }; A.InternalExrPizCompressor.prototype = { InternalExrPizCompressor$3(header, _maxScanLineSize, _numScanLines) { var _i, t1, tmpBufferSize, _this = this, _length = header.channels.length, _list = J.JSArray_JSArray$allocateFixed(_length, type$._PizChannelData); for (_i = 0; _i < _length; ++_i) _list[_i] = new A._PizChannelData(); _this.set$__InternalExrPizCompressor__channelData(type$.List_nullable__PizChannelData._as(_list)); t1 = _this._exr_piz_compressor$_maxScanLineSize; t1.toString; tmpBufferSize = B.JSInt_methods._tdivFast$1(t1 * _this._exr_piz_compressor$_numScanLines, 2); _this._tmpBuffer = new Uint16Array(tmpBufferSize); }, numScanLines$0() { return this._exr_piz_compressor$_numScanLines; }, uncompress$5(input, x, y, width, height) { var maxX, maxY, t1, t2, channels, numChannels, tmpBufferEnd, i, ch, a1, b1, minNonZero, maxNonZero, bitmap, b, len, t3, j, j0, t4, lut, maxValue, _this = this, _s12_ = "_channelData", _s9_ = "ySampling", _s4_ = "size", _s2_ = "nx"; if (width == null) width = _this._header.width; if (height == null) height = _this._header._linesInBuffer; width.toString; maxX = x + width - 1; height.toString; maxY = y + height - 1; t1 = _this._header; t2 = t1.width; t2.toString; if (maxX > t2) maxX = t2 - 1; t2 = t1.height; t2.toString; if (maxY > t2) maxY = t2 - 1; _this.decodedWidth = maxX - x + 1; _this.decodedHeight = maxY - y + 1; channels = t1.channels; numChannels = channels.length; for (tmpBufferEnd = 0, i = 0; i < numChannels; ++i) { if (!(i < channels.length)) return A.ioore(channels, i); ch = channels[i]; t1 = J.$index$asx(A._lateReadCheck(_this.__InternalExrPizCompressor__channelData, _s12_), i); t1.toString; t1.___PizChannelData_start = tmpBufferEnd; t1.___PizChannelData_end = A._lateReadCheck(tmpBufferEnd, "start"); t2 = A._lateReadCheck(ch.__ExrChannel_xSampling, "xSampling"); a1 = B.JSInt_methods.$tdiv(x, t2); b1 = B.JSInt_methods.$tdiv(maxX, t2); t2 = a1 * t2 < x ? 0 : 1; t1.___PizChannelData_nx = b1 - a1 + t2; t2 = A._lateReadCheck(ch.__ExrChannel_ySampling, _s9_); a1 = B.JSInt_methods.$tdiv(y, t2); b1 = B.JSInt_methods.$tdiv(maxY, t2); t2 = a1 * t2 < y ? 0 : 1; t1.___PizChannelData_ny = b1 - a1 + t2; t1.___PizChannelData_ys = A._lateReadCheck(ch.__ExrChannel_ySampling, _s9_); t1.___PizChannelData_size = B.JSInt_methods._tdivFast$1(A._lateReadCheck(ch.__ExrChannel_size, _s4_), 2); tmpBufferEnd += A._lateReadCheck(t1.___PizChannelData_nx, _s2_) * A._lateReadCheck(t1.___PizChannelData_ny, "ny") * A._lateReadCheck(t1.___PizChannelData_size, _s4_); } minNonZero = input.readUint16$0(); maxNonZero = input.readUint16$0(); if (maxNonZero >= 8192) throw A.wrapException(A.ImageException$("Error in header for PIZ-compressed data (invalid bitmap size).")); bitmap = new Uint8Array(8192); if (minNonZero <= maxNonZero) { b = input.readBytes$1(maxNonZero - minNonZero + 1); for (t1 = b.offset, len = b.end - t1, t2 = b.buffer, t3 = t2.length, j = minNonZero, i = 0; i < len; ++i, j = j0) { j0 = j + 1; t4 = t1 + i; if (!(t4 >= 0 && t4 < t3)) return A.ioore(t2, t4); t4 = t2[t4]; if (!(j < 8192)) return A.ioore(bitmap, j); bitmap[j] = t4; } } lut = new Uint16Array(65536); maxValue = _this._reverseLutFromBitmap$2(bitmap, lut); A.ExrHuffman_uncompress(input, input.readUint32$0(), _this._tmpBuffer, tmpBufferEnd); for (i = 0; i < numChannels; ++i) { t1 = J.$index$asx(A._lateReadCheck(_this.__InternalExrPizCompressor__channelData, _s12_), i); t1.toString; for (j = 0; j < A._lateReadCheck(t1.___PizChannelData_size, _s4_); ++j) { t2 = _this._tmpBuffer; t2.toString; A.ExrWavelet_decode(t2, A._lateReadCheck(t1.___PizChannelData_start, "start") + j, A._lateReadCheck(t1.___PizChannelData_nx, _s2_), A._lateReadCheck(t1.___PizChannelData_size, _s4_), A._lateReadCheck(t1.___PizChannelData_ny, "ny"), A._lateReadCheck(t1.___PizChannelData_nx, _s2_) * A._lateReadCheck(t1.___PizChannelData_size, _s4_), maxValue); } } t1 = _this._tmpBuffer; t1.toString; _this._applyLut$3(lut, t1, tmpBufferEnd); t1 = _this._exr_piz_compressor$_output; if (t1 == null) { t1 = _this._exr_piz_compressor$_maxScanLineSize; t1.toString; t1 = _this._exr_piz_compressor$_output = A.OutputBuffer$(false, t1 * _this._exr_piz_compressor$_numScanLines + 73728); } t1.length = 0; for (; y <= maxY; ++y) for (i = 0; i < numChannels; ++i) { t1 = J.$index$asx(A._lateReadCheck(_this.__InternalExrPizCompressor__channelData, _s12_), i); t1.toString; if (B.JSInt_methods.$mod(y, A._lateReadCheck(t1.___PizChannelData_ys, "ys")) !== 0) continue; for (x = A._lateReadCheck(t1.___PizChannelData_nx, _s2_) * A._lateReadCheck(t1.___PizChannelData_size, _s4_); x > 0; --x) { t2 = _this._exr_piz_compressor$_output; t2.toString; t3 = _this._tmpBuffer; t3.toString; t4 = A._lateReadCheck(t1.___PizChannelData_end, "end"); t1.___PizChannelData_end = t4 + 1; if (t4 >>> 0 !== t4 || t4 >= t3.length) return A.ioore(t3, t4); t2.writeUint16$1(t3[t4]); } } t1 = _this._exr_piz_compressor$_output; return A.NativeUint8List_NativeUint8List$view(t1._buffer.buffer, 0, t1.length); }, uncompress$3(input, x, y) { return this.uncompress$5(input, x, y, null, null); }, _applyLut$3(lut, data, nData) { var i, t2, t1 = type$.List_int; t1._as(lut); t1._as(data); for (t1 = data.length, i = 0; i < nData; ++i) { if (!(i < t1)) return A.ioore(data, i); t2 = data[i]; if (!(t2 >= 0 && t2 < 65536)) return A.ioore(lut, t2); data[i] = lut[t2]; } }, _reverseLutFromBitmap$2(bitmap, lut) { var k, i, t1, k0, k1; for (k = 0, i = 0; i < 65536; ++i) { if (i !== 0) { t1 = i >>> 3; if (!(t1 < 8192)) return A.ioore(bitmap, t1); t1 = (bitmap[t1] & 1 << (i & 7)) >>> 0 !== 0; } else t1 = true; if (t1) { k0 = k + 1; if (!(k < 65536)) return A.ioore(lut, k); lut[k] = i; k = k0; } } for (k0 = k; k0 < 65536; k0 = k1) { k1 = k0 + 1; if (!(k0 < 65536)) return A.ioore(lut, k0); lut[k0] = 0; } return k - 1; }, set$__InternalExrPizCompressor__channelData(__InternalExrPizCompressor__channelData) { this.__InternalExrPizCompressor__channelData = type$.List_nullable__PizChannelData._as(__InternalExrPizCompressor__channelData); } }; A._PizChannelData.prototype = {}; A.InternalExrPxr24Compressor.prototype = { numScanLines$0() { return this._exr_pxr24_compressor$_numScanLines; }, uncompress$5(input, x, y, width, height) { var ptr, pixel, pixelBytes, maxX, maxY, t2, numChannels, t3, yi, tmpEnd, ci, ch, t4, a1, b1, n, j, t5, t6, k, _this = this, data = B.C__ZLibDecoder.decodeBuffer$2$verify(A.InputStream$(type$.List_int._as(input.toUint8List$0()), 1, null, 0), false), t1 = _this._output; if (t1 == null) { t1 = _this._maxScanLineSize; t1.toString; t1 = _this._output = A.OutputBuffer$(false, _this._exr_pxr24_compressor$_numScanLines * t1); } t1.length = 0; ptr = A._setArrayType([0, 0, 0, 0], type$.JSArray_int); pixel = new Uint32Array(1); pixelBytes = A.NativeUint8List_NativeUint8List$view(pixel.buffer, 0, null); if (width == null) width = _this._header.width; if (height == null) height = _this._header._linesInBuffer; width.toString; maxX = x + width - 1; height.toString; maxY = y + height - 1; t1 = _this._header; t2 = t1.width; t2.toString; if (maxX > t2) maxX = t2 - 1; t2 = t1.height; t2.toString; if (maxY > t2) maxY = t2 - 1; _this.decodedWidth = maxX - x + 1; _this.decodedHeight = maxY - y + 1; t1 = t1.channels; numChannels = t1.length; for (t2 = pixelBytes.length, t3 = data.length, yi = y, tmpEnd = 0; yi <= maxY; ++yi) for (ci = 0; ci < numChannels; ++ci) { if (!(ci < t1.length)) return A.ioore(t1, ci); ch = t1[ci]; if (B.JSInt_methods.$mod(y, A._lateReadCheck(ch.__ExrChannel_ySampling, "ySampling")) !== 0) continue; t4 = A._lateReadCheck(ch.__ExrChannel_xSampling, "xSampling"); a1 = B.JSInt_methods.$tdiv(x, t4); b1 = B.JSInt_methods.$tdiv(maxX, t4); t4 = a1 * t4 < x ? 0 : 1; n = b1 - a1 + t4; if (0 >= 1) return A.ioore(pixel, 0); pixel[0] = 0; switch (A._lateReadCheck(ch.__ExrChannel_type, "type")) { case 0: B.JSArray_methods.$indexSet(ptr, 0, tmpEnd); B.JSArray_methods.$indexSet(ptr, 1, ptr[0] + n); B.JSArray_methods.$indexSet(ptr, 2, ptr[1] + n); tmpEnd = ptr[2] + n; for (j = 0; j < n; ++j) { t4 = ptr[0]; B.JSArray_methods.$indexSet(ptr, 0, t4 + 1); if (!(t4 >= 0 && t4 < t3)) return A.ioore(data, t4); t4 = data[t4]; t5 = ptr[1]; B.JSArray_methods.$indexSet(ptr, 1, t5 + 1); if (!(t5 >= 0 && t5 < t3)) return A.ioore(data, t5); t5 = data[t5]; t6 = ptr[2]; B.JSArray_methods.$indexSet(ptr, 2, t6 + 1); if (!(t6 >= 0 && t6 < t3)) return A.ioore(data, t6); t6 = data[t6]; pixel[0] = pixel[0] + ((t4 << 24 | t5 << 16 | t6 << 8) >>> 0); for (k = 0; k < 4; ++k) { t4 = _this._output; t4.toString; if (!(k < t2)) return A.ioore(pixelBytes, k); t4.writeByte$1(pixelBytes[k]); } } break; case 1: B.JSArray_methods.$indexSet(ptr, 0, tmpEnd); B.JSArray_methods.$indexSet(ptr, 1, ptr[0] + n); tmpEnd = ptr[1] + n; for (j = 0; j < n; ++j) { t4 = ptr[0]; B.JSArray_methods.$indexSet(ptr, 0, t4 + 1); if (!(t4 >= 0 && t4 < t3)) return A.ioore(data, t4); t4 = data[t4]; t5 = ptr[1]; B.JSArray_methods.$indexSet(ptr, 1, t5 + 1); if (!(t5 >= 0 && t5 < t3)) return A.ioore(data, t5); t5 = data[t5]; pixel[0] = pixel[0] + ((t4 << 8 | t5) >>> 0); for (k = 0; k < 2; ++k) { t4 = _this._output; t4.toString; if (!(k < t2)) return A.ioore(pixelBytes, k); t4.writeByte$1(pixelBytes[k]); } } break; case 2: B.JSArray_methods.$indexSet(ptr, 0, tmpEnd); B.JSArray_methods.$indexSet(ptr, 1, ptr[0] + n); B.JSArray_methods.$indexSet(ptr, 2, ptr[1] + n); tmpEnd = ptr[2] + n; for (j = 0; j < n; ++j) { t4 = ptr[0]; B.JSArray_methods.$indexSet(ptr, 0, t4 + 1); if (!(t4 >= 0 && t4 < t3)) return A.ioore(data, t4); t4 = data[t4]; t5 = ptr[1]; B.JSArray_methods.$indexSet(ptr, 1, t5 + 1); if (!(t5 >= 0 && t5 < t3)) return A.ioore(data, t5); t5 = data[t5]; t6 = ptr[2]; B.JSArray_methods.$indexSet(ptr, 2, t6 + 1); if (!(t6 >= 0 && t6 < t3)) return A.ioore(data, t6); t6 = data[t6]; pixel[0] = pixel[0] + ((t4 << 24 | t5 << 16 | t6 << 8) >>> 0); for (k = 0; k < 4; ++k) { t4 = _this._output; t4.toString; if (!(k < t2)) return A.ioore(pixelBytes, k); t4.writeByte$1(pixelBytes[k]); } } break; } } t1 = _this._output; return A.NativeUint8List_NativeUint8List$view(t1._buffer.buffer, 0, t1.length); }, uncompress$3(input, x, y) { return this.uncompress$5(input, x, y, null, null); } }; A.InternalExrRleCompressor.prototype = { numScanLines$0() { return 1; }, uncompress$5(input, x, y, width, height) { var maxX, maxY, t2, t3, n, count, count0, data, len, i, t10, si, si0, t11, t4, t20, _this = this, t1 = input.end, out = A.OutputBuffer$(false, (t1 - input.offset) * 2); if (width == null) width = _this._header.width; if (height == null) height = _this._header._linesInBuffer; width.toString; maxX = x + width - 1; height.toString; maxY = y + height - 1; t2 = _this._header; t3 = t2.width; t3.toString; if (maxX > t3) maxX = t3 - 1; t2 = t2.height; t2.toString; if (maxY > t2) maxY = t2 - 1; _this.decodedWidth = maxX - x + 1; _this.decodedHeight = maxY - y + 1; for (; t2 = input.offset, t2 < t1;) { t3 = input.buffer; input.offset = t2 + 1; if (!(t2 >= 0 && t2 < t3.length)) return A.ioore(t3, t2); t2 = t3[t2]; $.$get$__uint8()[0] = t2; t2 = $.$get$__uint8ToInt8(); if (0 >= t2.length) return A.ioore(t2, 0); n = t2[0]; if (n < 0) { count = -n; for (; count0 = count - 1, count > 0; count = count0) { t2 = input.buffer; t3 = input.offset++; if (!(t3 >= 0 && t3 < t2.length)) return A.ioore(t2, t3); out.writeByte$1(t2[t3]); } } else for (count = n; count0 = count - 1, count >= 0; count = count0) { t2 = input.buffer; t3 = input.offset++; if (!(t3 >= 0 && t3 < t2.length)) return A.ioore(t2, t3); out.writeByte$1(t2[t3]); } } data = A.NativeUint8List_NativeUint8List$view(out._buffer.buffer, 0, out.length); for (len = data.length, i = 1; i < len; ++i) data[i] = data[i - 1] + data[i] - 128; t1 = _this._exr_rle_compressor$_outCache; if (t1 == null || t1.length !== len) t1 = _this._exr_rle_compressor$_outCache = new Uint8Array(len); t2 = B.JSInt_methods._tdivFast$1(len + 1, 2); for (t10 = 0, si = 0; true; t2 = t20, t10 = t11) { if (si < len) { t1.toString; si0 = si + 1; t11 = t10 + 1; if (!(t10 < len)) return A.ioore(data, t10); t3 = data[t10]; t4 = t1.length; if (!(si < t4)) return A.ioore(t1, si); t1[si] = t3; } else break; if (si0 < len) { si = si0 + 1; t20 = t2 + 1; if (!(t2 < len)) return A.ioore(data, t2); t2 = data[t2]; if (!(si0 < t4)) return A.ioore(t1, si0); t1[si0] = t2; } else break; } t1.toString; return t1; }, uncompress$3(input, x, y) { return this.uncompress$5(input, x, y, null, null); } }; A.InternalExrZipCompressor.prototype = { numScanLines$0() { return this._exr_zip_compressor$_numScanLines; }, uncompress$5(input, x, y, width, height) { var maxX, maxY, t1, t2, len, i, t10, si, si0, t11, t3, t4, t20, _this = this, data = B.C__ZLibDecoder.decodeBuffer$2$verify(A.InputStream$(type$.List_int._as(input.toUint8List$0()), 1, null, 0), false); if (width == null) width = _this._header.width; if (height == null) height = _this._header._linesInBuffer; width.toString; maxX = x + width - 1; height.toString; maxY = y + height - 1; t1 = _this._header; t2 = t1.width; t2.toString; if (maxX > t2) maxX = t2 - 1; t1 = t1.height; t1.toString; if (maxY > t1) maxY = t1 - 1; _this.decodedWidth = maxX - x + 1; _this.decodedHeight = maxY - y + 1; for (len = data.length, i = 1; i < len; ++i) data[i] = data[i - 1] + data[i] - 128; t1 = _this._outCache; if (t1 == null || t1.length !== len) t1 = _this._outCache = new Uint8Array(len); t2 = B.JSInt_methods._tdivFast$1(len + 1, 2); for (t10 = 0, si = 0; true; t2 = t20, t10 = t11) { if (si < len) { t1.toString; si0 = si + 1; t11 = t10 + 1; if (!(t10 < len)) return A.ioore(data, t10); t3 = data[t10]; t4 = t1.length; if (!(si < t4)) return A.ioore(t1, si); t1[si] = t3; } else break; if (si0 < len) { si = si0 + 1; t20 = t2 + 1; if (!(t2 < len)) return A.ioore(data, t2); t2 = data[t2]; if (!(si0 < t4)) return A.ioore(t1, si0); t1[si0] = t2; } else break; } t1.toString; return t1; }, uncompress$3(input, x, y) { return this.uncompress$5(input, x, y, null, null); } }; A.ExrDecoder.prototype = { decodeFrame$1(frame) { var t1 = this.exrImage; if (t1 == null) return null; t1 = t1._parts; if (!(frame < t1.length)) return A.ioore(t1, frame); return A.hdrToImage(t1[frame].framebuffer, 1); }, decodeImage$1(bytes) { var t1; type$.List_int._as(bytes); t1 = new A.ExrImage(A._setArrayType([], type$.JSArray_InternalExrPart)); t1.ExrImage$1(bytes); this.exrImage = t1; return this.decodeFrame$1(0); } }; A.GifColorMap.prototype = { $index(_, index) { return B.NativeUint8List_methods.$index(this.colors, A._asInt(index)); }, setColor$4(index, r, g, b) { var t3, ci = index * 3, t1 = this.colors, t2 = t1.length; if (!(ci < t2)) return A.ioore(t1, ci); t1[ci] = r; t3 = ci + 1; if (!(t3 < t2)) return A.ioore(t1, t3); t1[t3] = g; t3 = ci + 2; if (!(t3 < t2)) return A.ioore(t1, t3); t1[t3] = b; } }; A.GifImageDesc.prototype = { GifImageDesc$1(input) { var b, i, t1, t2, t3, t4, t5, t6, _this = this; _this.__GifImageDesc_x = input.readUint16$0(); _this.__GifImageDesc_y = input.readUint16$0(); _this.__GifImageDesc_width = input.readUint16$0(); _this.__GifImageDesc_height = input.readUint16$0(); b = input.readByte$0(); _this.__GifImageDesc_interlaced = (b & 64) !== 0; if ((b & 128) !== 0) { _this.colorMap = A.GifColorMap$(B.JSInt_methods._shlPositive$1(1, (b & 7) + 1)); for (i = 0; t1 = _this.colorMap, i < t1.numColors; ++i) { t2 = input.buffer; t3 = input.offset; t4 = input.offset = t3 + 1; t5 = t2.length; if (!(t3 >= 0 && t3 < t5)) return A.ioore(t2, t3); t3 = t2[t3]; t6 = input.offset = t4 + 1; if (!(t4 >= 0 && t4 < t5)) return A.ioore(t2, t4); t4 = t2[t4]; input.offset = t6 + 1; if (!(t6 >= 0 && t6 < t5)) return A.ioore(t2, t6); t1.setColor$4(i, t3, t4, t2[t6]); } } _this.__GifImageDesc__inputPosition = input.offset - input.start; } }; A.InternalGifImageDesc.prototype = {}; A.GifInfo.prototype = {}; A.GifDecoder.prototype = { startDecode$1(bytes) { var recordType, gifImage, extCode, error, t1, t2, t3, t4, t5, exception, _this = this; _this._input = A.InputBuffer$(type$.List_int._as(bytes), false, null, 0); _this.info = new A.GifInfo(A._setArrayType([], type$.JSArray_GifImageDesc)); if (!_this._getInfo$0()) return null; try { for (; t1 = _this._input, t2 = t1.offset, t2 < t1.end;) { t3 = t1.buffer; t4 = t1.offset = t2 + 1; t5 = t3.length; if (!(t2 >= 0 && t2 < t5)) return A.ioore(t3, t2); recordType = t3[t2]; switch (recordType) { case 44: gifImage = _this._skipImage$0(); if (gifImage == null) { t1 = _this.info; return t1; } B.JSArray_methods.add$1(_this.info.frames, gifImage); break; case 33: t1.offset = t4 + 1; if (!(t4 >= 0 && t4 < t5)) return A.ioore(t3, t4); extCode = t3[t4]; if (J.$eq$(extCode, 255)) { t1 = _this._input; t2 = t1.buffer; t3 = t1.offset++; if (!(t3 >= 0 && t3 < t2.length)) return A.ioore(t2, t3); if (t1.readString$1(t2[t3]) === "NETSCAPE2.0") { t2 = t1.buffer; t3 = t1.offset; t4 = t1.offset = t3 + 1; t5 = t2.length; if (!(t3 >= 0 && t3 < t5)) return A.ioore(t2, t3); t3 = t2[t3]; t1.offset = t4 + 1; if (!(t4 >= 0 && t4 < t5)) return A.ioore(t2, t4); t4 = t2[t4]; if (t3 === 3 && t4 === 1) t1.readUint16$0(); } else _this._skipRemainder$0(); } else if (J.$eq$(extCode, 249)) { t1 = _this._input; t1.toString; _this._readGraphicsControlExt$1(t1); } else _this._skipRemainder$0(); break; case 59: t1 = _this.info; return t1; default: break; } } } catch (exception) { error = A.unwrapException(exception); A.print(error); } return _this.info; }, _readGraphicsControlExt$1(_input) { var b, transparent, t1, t2, gifImage; _input.readByte$0(); b = _input.readByte$0(); _input.readUint16$0(); transparent = _input.readByte$0(); _input.readByte$0(); B.JSInt_methods._shrOtherPositive$1(b, 2); t1 = _input.subset$2$offset(1, 0); t2 = t1.buffer; t1 = t1.offset; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); if (t2[t1] === 44) { ++_input.offset; gifImage = this._skipImage$0(); if (gifImage == null) return; if ((b & 1) !== 0) { t1 = gifImage.colorMap; if (t1 != null) t1.transparent = transparent; else { t1 = this.info.globalColorMap; if (t1 != null) t1.transparent = transparent; } } B.JSArray_methods.add$1(this.info.frames, gifImage); } }, decodeFrame$1(frame) { var t2, t3, gifImage, _this = this, t1 = _this._input; if (t1 == null || _this.info == null) return null; t2 = _this.info.frames; t3 = t2.length; if (frame >= t3 || false) return null; if (!(frame < t3)) return A.ioore(t2, frame); gifImage = t2[frame]; t1.toString; t1.offset = A._lateReadCheck(gifImage.__GifImageDesc__inputPosition, "_inputPosition"); t1 = _this.info.frames; if (!(frame < t1.length)) return A.ioore(t1, frame); return _this._decodeImage$1(t1[frame]); }, decodeImage$1(bytes) { if (this.startDecode$1(type$.List_int._as(bytes)) == null) return null; return this.decodeFrame$1(0); }, _skipImage$0() { var gifImage, t1 = this._input; if (t1.offset >= t1.end) return null; gifImage = new A.InternalGifImageDesc(); gifImage.GifImageDesc$1(t1); ++this._input.offset; this._skipRemainder$0(); return gifImage; }, _decodeImage$1(gifImage) { var t1, t2, t3, t4, t5, colorMap, image, line, i, j, y, _this = this; if (_this._gif_decoder$_buffer == null) { _this._gif_decoder$_buffer = new Uint8Array(256); _this.__GifDecoder__stack = new Uint8Array(4095); _this.__GifDecoder__suffix = new Uint8Array(4096); _this._prefix = new Uint32Array(4096); } t1 = _this._bitsPerPixel = _this._input.readByte$0(); t2 = B.JSInt_methods.$shl(1, t1); _this._clearCode = t2; ++t2; _this._eofCode = t2; _this._runningCode = t2 + 1; ++t1; _this._runningBits = t1; _this._maxCode1 = B.JSInt_methods.$shl(1, t1); _this._stackPtr = 0; _this._lastCode = 4098; _this._currentShiftDWord = _this._currentShiftState = 0; _this._gif_decoder$_buffer[0] = 0; t1 = _this._prefix; t1.toString; B.NativeUint32List_methods.fillRange$3(t1, 0, 4096, 4098); t1 = A._lateReadCheck(gifImage.__GifImageDesc_width, "width"); t2 = A._lateReadCheck(gifImage.__GifImageDesc_height, "height"); t3 = A._lateReadCheck(gifImage.__GifImageDesc_x, "x"); t4 = _this.info; t5 = t4.width; if (typeof t5 !== "number") return A.iae(t5); if (t3 + t1 <= t5) { t3 = A._lateReadCheck(gifImage.__GifImageDesc_y, "y"); t4 = _this.info; t5 = t4.height; if (typeof t5 !== "number") return A.iae(t5); t5 = t3 + t2 > t5; t3 = t5; } else t3 = true; if (t3) return null; colorMap = gifImage.colorMap; colorMap = colorMap != null ? colorMap : t4.globalColorMap; _this._pixelCount = t1 * t2; image = A.Image$(t1, t2, B.Channels_1, null, null); line = new Uint8Array(t1); if (A._lateReadCheck(gifImage.__GifImageDesc_interlaced, "interlaced")) { t1 = A._lateReadCheck(gifImage.__GifImageDesc_y, "y"); for (t2 = t1 + t2, i = 0, j = 0; i < 4; ++i) for (y = t1 + B.List_0_4_2_1[i]; y < t2; y += B.List_8_8_4_2[i], ++j) { if (!_this._getLine$1(line)) return image; _this._updateImage$4(image, y, colorMap, line); } } else for (y = 0; y < t2; ++y) { if (!_this._getLine$1(line)) return image; _this._updateImage$4(image, y, colorMap, line); } return image; }, _updateImage$4(image, y, colorMap, line) { var width, t1, t2, t3, t4, t5, x, t6, ci, a, t7, t8, t9, t10; if (colorMap != null) for (width = line.length, t1 = colorMap.colors, t2 = t1.length, t3 = image.data, t4 = y * image.width, t5 = t3.length, x = 0; x < width; ++x) { t6 = line[x]; ci = t6 * 3; a = t6 === colorMap.transparent ? 0 : 255; if (!(ci < t2)) return A.ioore(t1, ci); t6 = t1[ci]; t7 = ci + 1; if (!(t7 < t2)) return A.ioore(t1, t7); t7 = t1[t7]; t8 = ci + 2; if (!(t8 < t2)) return A.ioore(t1, t8); t8 = t1[t8]; t9 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(a, 0, 255)); t8 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(t8, 0, 255)); t7 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(t7, 0, 255)); t6 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(t6, 0, 255)); t10 = t4 + x; if (!(t10 >= 0 && t10 < t5)) return A.ioore(t3, t10); t3[t10] = (t9 << 24 | t8 << 16 | t7 << 8 | t6) >>> 0; } }, _getInfo$0() { var t1, b, i, t2, t3, t4, t5, t6, t7, _this = this, tag = _this._input.readString$1(6); if (tag !== "GIF87a" && tag !== "GIF89a") return false; t1 = _this.info; t1.toString; t1.width = _this._input.readUint16$0(); t1 = _this.info; t1.toString; t1.height = _this._input.readUint16$0(); b = _this._input.readByte$0(); _this.info.toString; _this._input.readByte$0(); ++_this._input.offset; if ((b & 128) !== 0) { t1 = _this.info; t1.toString; t1.globalColorMap = A.GifColorMap$(B.JSInt_methods._shlPositive$1(1, (b & 7) + 1)); for (i = 0; t1 = _this.info.globalColorMap, i < t1.numColors; ++i) { t2 = _this._input; t3 = t2.buffer; t4 = t2.offset; t5 = t2.offset = t4 + 1; t6 = t3.length; if (!(t4 >= 0 && t4 < t6)) return A.ioore(t3, t4); t4 = t3[t4]; t7 = t2.offset = t5 + 1; if (!(t5 >= 0 && t5 < t6)) return A.ioore(t3, t5); t5 = t3[t5]; t2.offset = t7 + 1; if (!(t7 >= 0 && t7 < t6)) return A.ioore(t3, t7); t1.setColor$4(i, t4, t5, t3[t7]); } } _this.info.toString; return true; }, _getLine$1(line) { var _this = this, t1 = _this._pixelCount; t1.toString; _this._pixelCount = t1 - line.length; if (!_this._decompressLine$1(line)) return false; if (_this._pixelCount === 0) _this._skipRemainder$0(); return true; }, _skipRemainder$0() { var b, t2, t3, t1 = this._input; if (t1.offset >= t1.end) return true; b = t1.readByte$0(); while (true) { if (b !== 0) { t1 = this._input; t1 = t1.offset < t1.end; } else t1 = false; if (!t1) break; t1 = this._input; t2 = t1.offset += b; if (t2 >= t1.end) return true; t3 = t1.buffer; t1.offset = t2 + 1; if (!(t2 >= 0 && t2 < t3.length)) return A.ioore(t3, t2); b = t3[t2]; } return true; }, _decompressLine$1(line) { var lineLen, i, i0, t2, currentPrefix, j, t3, t4, t5, j0, _this = this, _s6_ = "_stack", _s7_ = "_suffix", t1 = _this._stackPtr; if (t1 > 4095) return false; lineLen = line.length; if (t1 !== 0) { i = 0; while (true) { if (!(t1 !== 0 && i < lineLen)) break; i0 = i + 1; t1 = A._lateReadCheck(_this.__GifDecoder__stack, _s6_); t2 = --_this._stackPtr; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); t1 = t1[t2]; if (!(i < lineLen)) return A.ioore(line, i); line[i] = t1; t1 = t2; i = i0; } } else i = 0; for (; i < lineLen;) { currentPrefix = _this._currentCode = _this._decompressInput$0(); if (currentPrefix == null) return false; t1 = _this._eofCode; if (currentPrefix === t1) return false; t2 = _this._clearCode; if (currentPrefix === t2) { for (t2 = _this._prefix, j = 0; j <= 4095; ++j) t2[j] = 4098; _this._runningCode = t1 + 1; t1 = _this._bitsPerPixel + 1; _this._runningBits = t1; _this._maxCode1 = B.JSInt_methods.$shl(1, t1); _this._lastCode = 4098; } else { if (currentPrefix < t2) { i0 = i + 1; if (!(i >= 0)) return A.ioore(line, i); line[i] = currentPrefix; i = i0; } else { t1 = _this._prefix; t1.toString; if (currentPrefix >>> 0 !== currentPrefix || currentPrefix >= 4096) return A.ioore(t1, currentPrefix); if (t1[currentPrefix] === 4098) if (currentPrefix === _this._runningCode - 2) { currentPrefix = _this._lastCode; t1 = A._lateReadCheck(_this.__GifDecoder__suffix, _s7_); t2 = _this._runningCode - 2; t3 = A._lateReadCheck(_this.__GifDecoder__stack, _s6_); t4 = _this._stackPtr++; t5 = _this._getPrefixChar$3(_this._prefix, _this._lastCode, _this._clearCode); if (!(t4 >= 0 && t4 < t3.length)) return A.ioore(t3, t4); t3[t4] = t5; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); t1[t2] = t5; } else return false; j = 0; while (true) { j0 = j + 1; if (!(j <= 4095 && currentPrefix > _this._clearCode && currentPrefix <= 4095)) break; t1 = A._lateReadCheck(_this.__GifDecoder__stack, _s6_); t2 = _this._stackPtr++; t3 = A._lateReadCheck(_this.__GifDecoder__suffix, _s7_); if (!(currentPrefix >= 0 && currentPrefix < t3.length)) return A.ioore(t3, currentPrefix); t3 = t3[currentPrefix]; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); t1[t2] = t3; t3 = _this._prefix; t3.toString; if (!(currentPrefix < 4096)) return A.ioore(t3, currentPrefix); currentPrefix = t3[currentPrefix]; j = j0; } if (j0 >= 4095 || currentPrefix > 4095) return false; t1 = A._lateReadCheck(_this.__GifDecoder__stack, _s6_); t2 = _this._stackPtr++; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); t1[t2] = currentPrefix; while (true) { if (!(_this._stackPtr !== 0 && i < lineLen)) break; i0 = i + 1; t1 = A._lateReadCheck(_this.__GifDecoder__stack, _s6_); t2 = --_this._stackPtr; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); t2 = t1[t2]; if (!(i >= 0 && i < lineLen)) return A.ioore(line, i); line[i] = t2; i = i0; } } t1 = _this._lastCode; if (t1 !== 4098) { t2 = _this._prefix; t2.toString; t3 = _this._runningCode - 2; if (!(t3 >= 0 && t3 < 4096)) return A.ioore(t2, t3); t3 = t2[t3] === 4098; t2 = t3; } else t2 = false; if (t2) { t2 = _this._prefix; t2.toString; t3 = _this._runningCode - 2; if (!(t3 >= 0 && t3 < 4096)) return A.ioore(t2, t3); t2[t3] = t1; t1 = _this._currentCode; t2 = _this.__GifDecoder__suffix; if (t1 === t3) { t1 = A._lateReadCheck(t2, _s7_); t2 = _this._runningCode - 2; t3 = _this._getPrefixChar$3(_this._prefix, _this._lastCode, _this._clearCode); if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); t1[t2] = t3; } else { t1 = A._lateReadCheck(t2, _s7_); t2 = _this._runningCode - 2; t3 = _this._prefix; t4 = _this._currentCode; t4.toString; t4 = _this._getPrefixChar$3(t3, t4, _this._clearCode); if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); t1[t2] = t4; } } t1 = _this._currentCode; t1.toString; _this._lastCode = t1; } } return true; }, _decompressInput$0() { var t1, t2, t3, t4, _this = this; if (_this._runningBits > 12) return null; for (; t1 = _this._currentShiftState, t2 = _this._runningBits, t1 < t2;) { t1 = _this._bufferedInput$0(); t1.toString; t2 = _this._currentShiftDWord; t3 = _this._currentShiftState; _this._currentShiftDWord = (t2 | B.JSInt_methods.$shl(t1, t3)) >>> 0; _this._currentShiftState = t3 + 8; } t3 = _this._currentShiftDWord; if (!(t2 >= 0 && t2 < 13)) return A.ioore(B.List_Qw3, t2); t4 = B.List_Qw3[t2]; _this._currentShiftDWord = B.JSInt_methods._shrBothPositive$1(t3, t2); _this._currentShiftState = t1 - t2; t1 = _this._runningCode; if (t1 < 4097) { ++t1; _this._runningCode = t1; t1 = t1 > _this._maxCode1 && t2 < 12; } else t1 = false; if (t1) { _this._maxCode1 = _this._maxCode1 << 1 >>> 0; _this._runningBits = t2 + 1; } return t3 & t4; }, _getPrefixChar$3(prefix, code, clearCode) { var i0, t1, i = 0; while (true) { if (code > clearCode) { i0 = i + 1; t1 = i <= 4095; i = i0; } else t1 = false; if (!t1) break; if (code > 4095) return 4098; prefix.toString; if (!(code >= 0)) return A.ioore(prefix, code); code = prefix[code]; } return code; }, _bufferedInput$0() { var nextByte, t3, _this = this, t1 = _this._gif_decoder$_buffer, t2 = t1[0]; if (t2 === 0) { t1[0] = _this._input.readByte$0(); t1 = _this._gif_decoder$_buffer; t2 = t1[0]; if (t2 === 0) return null; B.NativeUint8List_methods.setRange$3(t1, 1, 1 + t2, _this._input.readBytes$1(t2).toUint8List$0()); t1 = _this._gif_decoder$_buffer; nextByte = t1[1]; t1[1] = 2; t1[0] = t1[0] - 1; } else { t3 = t1[1]; t1[1] = t3 + 1; if (!(t3 < 256)) return A.ioore(t1, t3); nextByte = t1[t3]; t1[0] = t2 - 1; } return nextByte; } }; A.GifEncoder.prototype = { addFrame$1(image) { var t1, _this = this; if (_this.output == null) { _this.output = A.OutputBuffer$(false, 8192); t1 = A.NeuralQuantizer$(image, _this.samplingFactor); _this._lastColorMap = t1; _this._lastImage = A.ditherPixels(image, t1, B.DitherKernel_2, false); _this._lastImageDuration = null; _this.__GifEncoder__width = image.width; _this.__GifEncoder__height = image.height; return; } if (_this._encodedFrames === 0) { _this._writeHeader$2(A._lateReadCheck(_this.__GifEncoder__width, "_width"), A._lateReadCheck(_this.__GifEncoder__height, "_height")); _this._writeApplicationExt$0(); } _this._writeGraphicsCtrlExt$0(); _this._addImage$5(_this._lastImage, A._lateReadCheck(_this.__GifEncoder__width, "_width"), A._lateReadCheck(_this.__GifEncoder__height, "_height"), A._lateReadCheck(_this._lastColorMap.__NeuralQuantizer_colorMap, "colorMap"), 256); ++_this._encodedFrames; t1 = A.NeuralQuantizer$(image, _this.samplingFactor); _this._lastColorMap = t1; _this._lastImage = A.ditherPixels(image, t1, B.DitherKernel_2, false); _this._lastImageDuration = null; }, finish$0(_) { var t1, bytes, _this = this; if (_this.output == null) return null; if (_this._encodedFrames === 0) { _this._writeHeader$2(A._lateReadCheck(_this.__GifEncoder__width, "_width"), A._lateReadCheck(_this.__GifEncoder__height, "_height")); _this._writeApplicationExt$0(); } else _this._writeGraphicsCtrlExt$0(); _this._addImage$5(_this._lastImage, A._lateReadCheck(_this.__GifEncoder__width, "_width"), A._lateReadCheck(_this.__GifEncoder__height, "_height"), A._lateReadCheck(_this._lastColorMap.__NeuralQuantizer_colorMap, "colorMap"), 256); _this.output.writeByte$1(59); _this._lastColorMap = _this._lastImage = null; _this._encodedFrames = 0; t1 = _this.output; bytes = A.NativeUint8List_NativeUint8List$view(t1._buffer.buffer, 0, t1.length); _this.output = null; return bytes; }, _addImage$5(image, width, height, colorMap, numColors) { var i, _this = this; _this.output.writeByte$1(44); _this.output.writeUint16$1(0); _this.output.writeUint16$1(0); _this.output.writeUint16$1(width); _this.output.writeUint16$1(height); _this.output.writeByte$1(135); _this.output.writeBytes$1(colorMap); for (i = numColors; i < 256; ++i) { _this.output.writeByte$1(0); _this.output.writeByte$1(0); _this.output.writeByte$1(0); } _this._encodeLZW$3(image, width, height); }, _encodeLZW$3(image, width, height) { var hTab, codeTab, _nextPixel, ent, hshift, fcode, i, outerLoop, c, t1, disp, c0, _this = this, _box_0 = {}; _this._blockSize = _this._curBits = _this._curAccum = 0; _this.__GifEncoder__block = new Uint8Array(256); _this.output.writeByte$1(8); hTab = new Int32Array(5003); codeTab = new Int32Array(5003); _box_0.remaining = width * height; _box_0.curPixel = 0; _this._nBits = _this._initBits = 9; _this._maxCode = 511; _this._gif_encoder$_clearCode = 256; _this._EOFCode = 257; _this._clearFlag = false; _this._freeEnt = 258; _nextPixel = new A.GifEncoder__encodeLZW__nextPixel(_box_0, image); ent = _nextPixel.call$0(); for (hshift = 0, fcode = 5003; fcode < 65536; fcode *= 2) ++hshift; hshift = 8 - hshift; for (i = 0; i < 5003; ++i) hTab[i] = -1; _this._gif_encoder$_output$1(_this._gif_encoder$_clearCode); for (outerLoop = true; outerLoop;) { c = _nextPixel.call$0(); for (outerLoop = false; c !== -1;) { fcode = (c << 12 >>> 0) + ent; i = (B.JSInt_methods.$shl(c, hshift) ^ ent) >>> 0; if (!(i < 5003)) return A.ioore(hTab, i); t1 = hTab[i]; if (t1 === fcode) { ent = codeTab[i]; c = _nextPixel.call$0(); continue; } else if (t1 >= 0) { disp = 5003 - i; if (i === 0) disp = 1; do { i -= disp; if (i < 0) i += 5003; if (!(i >= 0 && i < 5003)) return A.ioore(hTab, i); t1 = hTab[i]; if (t1 === fcode) { ent = codeTab[i]; outerLoop = true; break; } } while (t1 >= 0); if (outerLoop) break; } _this._gif_encoder$_output$1(ent); t1 = _this._freeEnt; if (t1 < 4096) { _this._freeEnt = t1 + 1; codeTab[i] = t1; hTab[i] = fcode; } else { for (i = 0; i < 5003; ++i) hTab[i] = -1; t1 = _this._gif_encoder$_clearCode; _this._freeEnt = t1 + 2; _this._clearFlag = true; _this._gif_encoder$_output$1(t1); } c0 = _nextPixel.call$0(); ent = c; c = c0; } } _this._gif_encoder$_output$1(ent); _this._gif_encoder$_output$1(_this._EOFCode); _this.output.writeByte$1(0); }, _gif_encoder$_output$1(code) { var t3, _this = this, t1 = _this._curAccum, t2 = _this._curBits; if (!(t2 >= 0 && t2 < 17)) return A.ioore(B.List_uRr, t2); t1 &= B.List_uRr[t2]; _this._curAccum = t1; if (t2 > 0) { t1 = (t1 | B.JSInt_methods._shlPositive$1(code, t2)) >>> 0; _this._curAccum = t1; } else { _this._curAccum = code; t1 = code; } t2 += _this._nBits; _this._curBits = t2; for (; t2 >= 8;) { _this._addToBlock$1(t1 & 255); t1 = B.JSInt_methods._shrOtherPositive$1(_this._curAccum, 8); _this._curAccum = t1; t2 = _this._curBits -= 8; } if (_this._freeEnt > _this._maxCode || _this._clearFlag) if (_this._clearFlag) { t3 = _this._initBits; _this._nBits = t3; _this._maxCode = B.JSInt_methods._shlPositive$1(1, t3) - 1; _this._clearFlag = false; } else { t3 = ++_this._nBits; if (t3 === 12) _this._maxCode = 4096; else _this._maxCode = B.JSInt_methods._shlPositive$1(1, t3) - 1; } if (code === _this._EOFCode) { for (; t2 > 0;) { _this._addToBlock$1(t1 & 255); t1 = B.JSInt_methods._shrOtherPositive$1(_this._curAccum, 8); _this._curAccum = t1; t2 = _this._curBits -= 8; } _this._writeBlock$0(); } }, _writeBlock$0() { var _this = this, t1 = _this._blockSize; if (t1 > 0) { _this.output.writeByte$1(t1); t1 = _this.output; t1.toString; t1.writeBytes$2(A._lateReadCheck(_this.__GifEncoder__block, "_block"), _this._blockSize); _this._blockSize = 0; } }, _addToBlock$1(c) { var _this = this, t1 = A._lateReadCheck(_this.__GifEncoder__block, "_block"), t2 = _this._blockSize, t3 = t2 + 1; _this._blockSize = t3; if (!(t2 < t1.length)) return A.ioore(t1, t2); t1[t2] = c; if (t3 >= 254) _this._writeBlock$0(); }, _writeApplicationExt$0() { var t1, _this = this; _this.output.writeByte$1(33); _this.output.writeByte$1(255); _this.output.writeByte$1(11); _this.output.writeBytes$1(new A.CodeUnits("NETSCAPE2.0")); t1 = _this.output; t1.toString; t1.writeBytes$1(A._setArrayType([3, 1], type$.JSArray_int)); _this.output.writeUint16$1(0); _this.output.writeByte$1(0); }, _writeGraphicsCtrlExt$0() { var t1, _this = this; _this.output.writeByte$1(33); _this.output.writeByte$1(249); _this.output.writeByte$1(4); _this.output.writeByte$1(0); t1 = _this.output; t1.writeUint16$1(80); _this.output.writeByte$1(0); _this.output.writeByte$1(0); }, _writeHeader$2(width, height) { var _this = this; _this.output.writeBytes$1(new A.CodeUnits("GIF89a")); _this.output.writeUint16$1(width); _this.output.writeUint16$1(height); _this.output.writeByte$1(0); _this.output.writeByte$1(0); _this.output.writeByte$1(0); } }; A.GifEncoder__encodeLZW__nextPixel.prototype = { call$0() { var t1 = this._box_0, t2 = t1.remaining; if (t2 === 0) return -1; t1.remaining = t2 - 1; t2 = this.image; t2.toString; t1 = t1.curPixel++; if (!(t1 < t2.length)) return A.ioore(t2, t1); return t2[t1] & 255; }, $signature: 28 }; A.IcoDecoder.prototype = { decodeFrame$1(frame) { var t2, imageInfo, t3, imageBuffer, png, dummyBmpHeader, t4, t5, t6, t7, t8, t9, t10, compression, t11, bmpInfo, offset, inp, bmp, image, padding, rowLength, y, line, bytes, x, j, t12, t13, t14, t15, _null = null, t1 = this._ico_decoder$_input; if (t1 != null) { t2 = this._icoInfo; t2 = t2 == null || frame >= t2.numFrames; } else t2 = true; if (t2) return _null; t2 = this._icoInfo.images; if (!(frame < t2.length)) return A.ioore(t2, frame); imageInfo = t2[frame]; t2 = t1.buffer; t1 = t1.start + imageInfo.bytesOffset; t3 = imageInfo.bytesSize; imageBuffer = J.sublist$2$ax(t2, t1, t1 + t3); png = new A.PngDecoder(); if (png.isValidFile$1(imageBuffer)) return png.decodeImage$1(imageBuffer); dummyBmpHeader = A.OutputBuffer$(false, 14); dummyBmpHeader.writeUint16$1(19778); dummyBmpHeader.writeUint32$1(t3); dummyBmpHeader.writeUint32$1(0); dummyBmpHeader.writeUint32$1(0); t1 = A.InputBuffer$(imageBuffer, false, _null, 0); t2 = A.BitmapFileHeader$(A.InputBuffer$(A.NativeUint8List_NativeUint8List$view(dummyBmpHeader._buffer.buffer, 0, dummyBmpHeader.length), false, _null, 0)); t3 = t1.readUint32$0(); t4 = t1.readUint32$0(); t5 = $.$get$__uint32(); t5[0] = t4; t4 = $.$get$__uint32ToInt32(); if (0 >= t4.length) return A.ioore(t4, 0); t6 = t4[0]; t5[0] = t1.readUint32$0(); t7 = t4[0]; t8 = t1.readUint16$0(); t9 = t1.readUint16$0(); t10 = t1.readUint32$0(); compression = A.LinkedHashMap_LinkedHashMap$_literal([0, B.BitmapCompression_1, 3, B.BitmapCompression_0], type$.int, type$.BitmapCompression).$index(0, t10); if (compression == null) A.throwExpression(A.ImageException$("Bitmap compression " + t10 + " is not supported yet.")); t10 = t1.readUint32$0(); t5[0] = t1.readUint32$0(); t11 = t4[0]; t5[0] = t1.readUint32$0(); t4 = t4[0]; t5 = t1.readUint32$0(); bmpInfo = new A.IcoBmpInfo(t2, t7, t6, t3, t8, t9, compression, t10, t11, t4, t5, t1.readUint32$0()); bmpInfo.BmpInfo$2$fileHeader(t1, t2); if (t3 !== 40 && t8 !== 1) return _null; offset = t5 === 0 && t9 <= 8 ? 40 + 4 * B.JSInt_methods._shlPositive$1(1, t9) : 40 + 4 * t5; t2.__BitmapFileHeader_offset = offset; dummyBmpHeader.length -= 4; dummyBmpHeader.writeUint32$1(offset); inp = A.InputBuffer$(imageBuffer, false, _null, 0); bmp = new A.DibDecoder(); bmp.__BmpDecoder__input = inp; bmp.info = bmpInfo; image = bmp.decodeFrame$1(0); if (t9 >= 32) return image; padding = 32 - B.JSInt_methods.$mod(t6, 32); rowLength = B.JSInt_methods._tdivFast$1(padding === 32 ? t6 : t6 + padding, 8); for (t1 = image.data, t2 = image.width, t3 = t1.length, t4 = image.height - 1, t5 = 1 / t7 < 0, t8 = t7 < 0, t7 = t7 === 0, y = 0; y < B.JSInt_methods._tdivFast$1(A.BmpInfo.prototype.get$height.call(bmpInfo, bmpInfo), 2); ++y) { line = !(t7 ? t5 : t8) ? y : t4 - y; bytes = inp.subset$1(rowLength); inp.offset = inp.offset + (bytes.end - bytes.offset); for (t9 = line * t2, x = 0; x < t6;) { t10 = bytes.buffer; t11 = bytes.offset++; if (!(t11 >= 0 && t11 < t10.length)) return A.ioore(t10, t11); t11 = t10[t11]; j = 7; while (true) { if (!(j > -1 && x < t6)) break; if ((t11 & B.JSInt_methods.$shl(1, j)) >>> 0 !== 0) { t10 = t9 + x; t12 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(0, 0, 255)); t13 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(0, 0, 255)); t14 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(0, 0, 255)); t15 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(0, 0, 255)); if (!(t10 >= 0 && t10 < t3)) return A.ioore(t1, t10); t1[t10] = (t12 << 24 | t13 << 16 | t14 << 8 | t15) >>> 0; } ++x; --j; } } } return image; }, decodeImage$1(bytes) { var t1 = A.InputBuffer$(type$.List_int._as(bytes), false, null, 0); this._ico_decoder$_input = t1; t1 = A.IcoInfo__read(t1); this._icoInfo = t1; if (t1 == null) return null; return this.decodeFrame$1(0); } }; A.IcoInfo.prototype = {}; A.IcoInfo__read_closure.prototype = { call$1(e) { var t1; A._asInt(e); t1 = this.input; t1.readByte$0(); t1.readByte$0(); t1.readByte$0(); ++t1.offset; t1.readUint16$0(); t1.readUint16$0(); return new A.IcoInfoImage(t1.readUint32$0(), t1.readUint32$0()); }, $signature: 29 }; A.IcoInfoImage.prototype = {}; A.IcoBmpInfo.prototype = { get$height(_) { return B.JSInt_methods._tdivFast$1(A.BmpInfo.prototype.get$height.call(this, this), 2); }, get$ignoreAlphaChannel() { return this.headerSize === 40 && this.bpp === 32 ? false : A.BmpInfo.prototype.get$ignoreAlphaChannel.call(this); } }; A.WinEncoder.prototype = { encodeImages$1(images) { var out, imageDatas, offset, i, _i, img, t1, data, _this = this; type$.List_Image._as(images); out = A.OutputBuffer$(false, 8192); out.writeUint16$1(0); out.writeUint16$1(_this.get$type(_this)); out.writeUint16$1(1); imageDatas = A._setArrayType([A._setArrayType([], type$.JSArray_int)], type$.JSArray_List_int); for (offset = 22, i = 0, _i = 0; _i < 1; ++_i) { img = images[_i]; t1 = img.width; if (t1 > 256 || img.height > 256) throw A.wrapException(A.Exception_Exception("ICO and CUR support only sizes until 256")); out.writeByte$1(t1); out.writeByte$1(img.height); out.writeByte$1(0); out.writeByte$1(0); out.writeUint16$1(_this.colorPlanesOrXHotSpot$1(i)); out.writeUint16$1(_this.bitsPerPixelOrYHotSpot$1(i)); t1 = A.PngEncoder$(null); t1.isAnimated = false; t1.addFrame$1(img); data = t1.finish$0(0); t1 = data.length; out.writeUint32$1(t1); out.writeUint32$1(offset); offset += t1; ++i; B.JSArray_methods.add$1(imageDatas, data); } for (t1 = imageDatas.length, _i = 0; _i < imageDatas.length; imageDatas.length === t1 || (0, A.throwConcurrentModificationError)(imageDatas), ++_i) out.writeBytes$1(imageDatas[_i]); return A.NativeUint8List_NativeUint8List$view(out._buffer.buffer, 0, out.length); } }; A.IcoEncoder.prototype = { colorPlanesOrXHotSpot$1(index) { return 0; }, bitsPerPixelOrYHotSpot$1(index) { return 32; }, get$type(_) { return 1; } }; A.ComponentData.prototype = {}; A.JpegAdobe.prototype = {}; A.JpegComponent.prototype = { set$__JpegComponent_blocks(__JpegComponent_blocks) { this.__JpegComponent_blocks = type$.List_List_List_int._as(__JpegComponent_blocks); } }; A.JpegData.prototype = { validate$1(bytes) { var soiCheck, t2, t3, marker, hasSOF, hasSOS, sectionByteSize, _this = this, _s5_ = "input", t1 = A.InputBuffer$(type$.List_int._as(bytes), true, null, 0); _this.__JpegData_input = t1; soiCheck = A._lateReadCheck(t1, _s5_).subset$2$offset(2, 0); t1 = soiCheck.buffer; t2 = soiCheck.offset; t3 = t1.length; if (!(t2 >= 0 && t2 < t3)) return A.ioore(t1, t2); if (t1[t2] === 255) { ++t2; if (!(t2 < t3)) return A.ioore(t1, t2); t2 = t1[t2] !== 216; t1 = t2; } else t1 = true; if (t1) return false; if (_this._nextMarker$0() !== 216) return false; marker = _this._nextMarker$0(); hasSOF = false; hasSOS = false; while (true) { if (marker !== 217) { t1 = A._lateReadCheck(_this.__JpegData_input, _s5_); t1 = t1.offset < t1.end; } else t1 = false; if (!t1) break; sectionByteSize = A._lateReadCheck(_this.__JpegData_input, _s5_).readUint16$0(); if (sectionByteSize < 2) break; t1 = A._lateReadCheck(_this.__JpegData_input, _s5_); t1.offset = t1.offset + (sectionByteSize - 2); switch (marker) { case 192: case 193: case 194: hasSOF = true; break; case 218: hasSOS = true; break; } marker = _this._nextMarker$0(); } return hasSOF && hasSOS; }, read$1(_, bytes) { var t1, i, t2, t3, component, t4, t5, t6, _this = this; _this.__JpegData_input = A.InputBuffer$(type$.List_int._as(bytes), true, null, 0); _this._read$0(); if (_this.frames.length !== 1) throw A.wrapException(A.ImageException$("Only single frame JPEGs supported")); for (t1 = _this.components, i = 0; t2 = _this.frame, t3 = t2.componentsOrder, i < t3.length; ++i) { component = t2.components.$index(0, t3[i]); t2 = component.hSamples; t3 = _this.frame; t4 = t3.maxHSamples; t5 = component.vSamples; t6 = t3.maxVSamples; t3 = _this._buildComponentData$2(t3, component); t2 = t2 === 1 && t4 === 2 ? 1 : 0; B.JSArray_methods.add$1(t1, new A.ComponentData(t3, t2, t5 === 1 && t6 === 2 ? 1 : 0)); } }, _read$0() { var marker, t1, $length, bytes, t2, _this = this, _s5_ = "input"; if (_this._nextMarker$0() !== 216) throw A.wrapException(A.ImageException$("Start Of Image marker not found.")); marker = _this._nextMarker$0(); while (true) { if (marker !== 217) { t1 = A._lateReadCheck(_this.__JpegData_input, _s5_); t1 = t1.offset < t1.end; } else t1 = false; if (!t1) break; $length = A._lateReadCheck(_this.__JpegData_input, _s5_).readUint16$0(); if ($length < 2) A.throwExpression(A.ImageException$("Invalid Block")); t1 = A._lateReadCheck(_this.__JpegData_input, _s5_); bytes = t1.subset$1($length - 2); t1.offset = t1.offset + (bytes.end - bytes.offset); switch (marker) { case 224: case 225: case 226: case 227: case 228: case 229: case 230: case 231: case 232: case 233: case 234: case 235: case 236: case 237: case 238: case 239: case 254: _this._readAppData$2(marker, bytes); break; case 219: _this._readDQT$1(bytes); break; case 192: case 193: case 194: _this._readFrame$2(marker, bytes); break; case 195: case 197: case 198: case 199: case 200: case 201: case 202: case 203: case 205: case 206: case 207: throw A.wrapException(A.ImageException$("Unhandled frame type " + B.JSInt_methods.toRadixString$1(marker, 16))); case 196: _this._readDHT$1(bytes); break; case 221: _this.resetInterval = bytes.readUint16$0(); break; case 218: _this._readSOS$1(bytes); break; case 255: t1 = A._lateReadCheck(_this.__JpegData_input, _s5_); t2 = t1.buffer; t1 = t1.offset; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); if (t2[t1] !== 255) --A._lateReadCheck(_this.__JpegData_input, _s5_).offset; break; default: t1 = A._lateReadCheck(_this.__JpegData_input, _s5_); t2 = t1.buffer; t1 = t1.offset + -3; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); if (t2[t1] === 255) { t1 = A._lateReadCheck(_this.__JpegData_input, _s5_); t2 = t1.buffer; t1 = t1.offset + -2; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); if (t2[t1] >= 192) { t1 = A._lateReadCheck(_this.__JpegData_input, _s5_); t2 = t1.buffer; t1 = t1.offset + -2; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); t1 = t2[t1] <= 254; } else t1 = false; } else t1 = false; if (t1) { A._lateReadCheck(_this.__JpegData_input, _s5_).offset -= 3; break; } if (marker !== 0) throw A.wrapException(A.ImageException$("Unknown JPEG marker " + B.JSInt_methods.toRadixString$1(marker, 16))); break; } marker = _this._nextMarker$0(); } }, _nextMarker$0() { var c, _this = this, _s5_ = "input", t1 = A._lateReadCheck(_this.__JpegData_input, _s5_); if (t1.offset >= t1.end) return 0; do { do { c = A._lateReadCheck(_this.__JpegData_input, _s5_).readByte$0(); if (c !== 255) { t1 = A._lateReadCheck(_this.__JpegData_input, _s5_); t1 = t1.offset < t1.end; } else t1 = false; } while (t1); t1 = A._lateReadCheck(_this.__JpegData_input, _s5_); if (t1.offset >= t1.end) return c; do { c = A._lateReadCheck(_this.__JpegData_input, _s5_).readByte$0(); if (c === 255) { t1 = A._lateReadCheck(_this.__JpegData_input, _s5_); t1 = t1.offset < t1.end; } else t1 = false; } while (t1); if (c === 0) { t1 = A._lateReadCheck(_this.__JpegData_input, _s5_); t1 = t1.offset < t1.end; } else t1 = false; } while (t1); return c; }, _readExifValue$3(block, format, offset) { var buffer, num, den, bytesRead, t2, t3, t1 = block.end, initialBlockLength = t1 - block.offset; try { switch (format) { case 6: t2 = block.readByte$0(); $.$get$__uint8()[0] = t2; t2 = $.$get$__uint8ToInt8(); if (0 >= t2.length) return A.ioore(t2, 0); t2 = t2[0]; return t2; case 1: case 7: t2 = block.readByte$0(); return t2; case 2: t2 = block.readString$1(1); return t2; case 3: t2 = block.readUint16$0(); return t2; case 4: t2 = block.readUint32$0(); return t2; case 5: case 10: buffer = block.subset$2$offset(8, offset); t2 = buffer.readUint32$0(); t3 = $.$get$__uint32(); t3[0] = t2; t2 = $.$get$__uint32ToInt32(); if (0 >= t2.length) return A.ioore(t2, 0); num = t2[0]; t3[0] = buffer.readUint32$0(); if (0 >= t2.length) return A.ioore(t2, 0); den = t2[0]; if (J.$eq$(den, 0)) return 0; t2 = num; t3 = den; if (typeof t2 !== "number") return t2.$div(); if (typeof t3 !== "number") return A.iae(t3); return t2 / t3; case 8: t2 = block.readUint16$0(); $.$get$__uint16()[0] = t2; t2 = $.$get$__uint16ToInt16(); if (0 >= t2.length) return A.ioore(t2, 0); t2 = t2[0]; return t2; case 9: t2 = block.readUint32$0(); $.$get$__uint32()[0] = t2; t2 = $.$get$__uint32ToInt32(); if (0 >= t2.length) return A.ioore(t2, 0); t2 = t2[0]; return t2; case 11: t2 = block.readUint32$0(); $.$get$__uint32()[0] = t2; t2 = $.$get$__uint32ToFloat32(); if (0 >= t2.length) return A.ioore(t2, 0); t2 = t2[0]; return t2; case 12: t2 = block.subset$2$offset(8, offset).readFloat64$0(); return t2; default: return 0; } } finally { t2 = initialBlockLength; t3 = block.offset; if (typeof t2 !== "number") return t2.$sub(); bytesRead = t2 - (t1 - t3); t1 = bytesRead; if (typeof t1 !== "number") return t1.$lt(); if (t1 < 4) { t1 = bytesRead; if (typeof t1 !== "number") return A.iae(t1); block.offset = t3 + A._asInt(4 - t1); } } }, _readExifDir$1(block) { var t1, t2, di, tag, format, components, byteCount, offset, numDirEntries = block.readUint16$0(); for (t1 = this.exif.data, t2 = block.end, di = 0; di < numDirEntries; ++di) { tag = block.readUint16$0(); format = block.readUint16$0(); components = block.readUint32$0(); if (format - 1 >= 12) continue; if (components > 65536) continue; if (!(format < 13)) return A.ioore(B.List_mC8, format); byteCount = B.List_mC8[format]; if (byteCount > 4) { offset = block.readUint32$0(); if (offset + byteCount > t2 - block.offset) continue; } else offset = 0; t1.$indexSet(0, tag, this._readExifValue$3(block, format, offset)); } }, _readExifData$1(block) { var rawData, saveEndian, alignment, offset, t1 = this.exif; if (t1.rawData == null) t1.set$rawData(A._setArrayType([], type$.JSArray_Uint8List)); rawData = B.NativeUint8List_methods.sublist$1(block.toUint8List$0(), 0); t1 = t1.rawData; t1.toString; B.JSArray_methods.add$1(t1, rawData); if (block.readUint32$0() !== 1165519206) return; if (block.readUint16$0() !== 0) return; saveEndian = block.bigEndian; alignment = block.readString$1(2); if (alignment === "II") block.bigEndian = false; else if (alignment === "MM") block.bigEndian = true; else return; block.offset += 2; offset = block.readUint32$0(); if (offset < 8 || offset > 16) if (offset > block.end - block.offset - 16) { block.bigEndian = saveEndian; return; } if (offset > 8) block.offset += offset - 8; this._readExifDir$1(block); block.bigEndian = saveEndian; }, _readAppData$2(marker, block) { var t1, t2, t3, exception, _this = this, _s4_ = "jfif", appData = block; if (marker === 224) { t1 = appData; t2 = t1.buffer; t1 = t1.offset; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); if (t2[t1] === 74) { t1 = appData; t2 = t1.buffer; t1 = t1.offset + 1; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); if (t2[t1] === 70) { t1 = appData; t2 = t1.buffer; t1 = t1.offset + 2; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); if (t2[t1] === 73) { t1 = appData; t2 = t1.buffer; t1 = t1.offset + 3; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); if (t2[t1] === 70) { t1 = appData; t2 = t1.buffer; t1 = t1.offset + 4; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); t1 = t2[t1] === 0; } else t1 = false; } else t1 = false; } else t1 = false; } else t1 = false; if (t1) { t1 = new A.JpegJfif(); _this.__JpegData_jfif = t1; A._lateReadCheck(t1, _s4_); t1 = appData; t2 = t1.buffer; t1 = t1.offset + 5; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); A._lateReadCheck(_this.__JpegData_jfif, _s4_); t2 = appData; t1 = t2.buffer; t2 = t2.offset + 6; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); A._lateReadCheck(_this.__JpegData_jfif, _s4_); t1 = appData; t2 = t1.buffer; t1 = t1.offset + 7; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); A._lateReadCheck(_this.__JpegData_jfif, _s4_); t2 = appData; t1 = t2.buffer; t2 = t2.offset + 8; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); t1 = appData; t2 = t1.buffer; t1 = t1.offset + 9; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); A._lateReadCheck(_this.__JpegData_jfif, _s4_); t2 = appData; t1 = t2.buffer; t2 = t2.offset + 10; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); t1 = appData; t2 = t1.buffer; t1 = t1.offset + 11; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); t2 = A._lateReadCheck(_this.__JpegData_jfif, _s4_); t1 = appData; t3 = t1.buffer; t1 = t1.offset + 12; if (!(t1 >= 0 && t1 < t3.length)) return A.ioore(t3, t1); t2.__JpegJfif_thumbWidth = t3[t1]; t1 = A._lateReadCheck(_this.__JpegData_jfif, _s4_); t3 = appData; t2 = t3.buffer; t3 = t3.offset + 13; if (!(t3 >= 0 && t3 < t2.length)) return A.ioore(t2, t3); t1.__JpegJfif_thumbHeight = t2[t3]; t3 = A._lateReadCheck(A._lateReadCheck(_this.__JpegData_jfif, _s4_).__JpegJfif_thumbWidth, "thumbWidth"); t2 = A._lateReadCheck(A._lateReadCheck(_this.__JpegData_jfif, _s4_).__JpegJfif_thumbHeight, "thumbHeight"); A._lateReadCheck(_this.__JpegData_jfif, _s4_); appData.subset$2$offset(14 + 3 * t3 * t2, 14); } } else if (marker === 225) _this._readExifData$1(appData); else if (marker === 238) { t1 = appData; t2 = t1.buffer; t1 = t1.offset; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); if (t2[t1] === 65) { t1 = appData; t2 = t1.buffer; t1 = t1.offset + 1; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); if (t2[t1] === 100) { t1 = appData; t2 = t1.buffer; t1 = t1.offset + 2; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); if (t2[t1] === 111) { t1 = appData; t2 = t1.buffer; t1 = t1.offset + 3; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); if (t2[t1] === 98) { t1 = appData; t2 = t1.buffer; t1 = t1.offset + 4; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); if (t2[t1] === 101) { t1 = appData; t2 = t1.buffer; t1 = t1.offset + 5; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); t1 = t2[t1] === 0; } else t1 = false; } else t1 = false; } else t1 = false; } else t1 = false; } else t1 = false; if (t1) { t1 = new A.JpegAdobe(); _this.adobe = t1; t2 = appData; t3 = t2.buffer; t2 = t2.offset + 6; if (!(t2 >= 0 && t2 < t3.length)) return A.ioore(t3, t2); t3 = appData; t2 = t3.buffer; t3 = t3.offset + 7; if (!(t3 >= 0 && t3 < t2.length)) return A.ioore(t2, t3); t2 = appData; t3 = t2.buffer; t2 = t2.offset + 8; if (!(t2 >= 0 && t2 < t3.length)) return A.ioore(t3, t2); t3 = appData; t2 = t3.buffer; t3 = t3.offset + 9; if (!(t3 >= 0 && t3 < t2.length)) return A.ioore(t2, t3); t2 = appData; t3 = t2.buffer; t2 = t2.offset + 10; if (!(t2 >= 0 && t2 < t3.length)) return A.ioore(t3, t2); t3 = appData; t2 = t3.buffer; t3 = t3.offset + 11; if (!(t3 >= 0 && t3 < t2.length)) return A.ioore(t2, t3); t1.transformCode = t2[t3]; } } else if (marker === 254) try { appData.readStringUtf8$0(); } catch (exception) { A.getTraceFromException(exception); } }, _readDQT$1(block) { var t1, t2, t3, t4, prec, n, tableData, i, tmp, t5; for (t1 = block.end, t2 = this.quantizationTables; t3 = block.offset, t4 = t3 < t1, t4;) { t4 = block.buffer; block.offset = t3 + 1; if (!(t3 >= 0 && t3 < t4.length)) return A.ioore(t4, t3); t3 = t4[t3]; prec = B.JSInt_methods._shrOtherPositive$1(t3, 4); n = t3 & 15; if (n >= 4) throw A.wrapException(A.ImageException$("Invalid number of quantization tables")); if (t2[n] == null) B.JSArray_methods.$indexSet(t2, n, new Int16Array(64)); tableData = t2[n]; for (t3 = prec !== 0, i = 0; i < 64; ++i) { if (t3) tmp = block.readUint16$0(); else { t4 = block.buffer; t5 = block.offset++; if (!(t5 >= 0 && t5 < t4.length)) return A.ioore(t4, t5); tmp = t4[t5]; } tableData.toString; t4 = B.List_AZw[i]; if (!(t4 < 64)) return A.ioore(tableData, t4); tableData[t4] = tmp; } } if (t4) throw A.wrapException(A.ImageException$("Bad length for DQT block")); }, _readFrame$2(marker, block) { var t1, numComponents, i, t2, t3, t4, t5, t6, t7, _this = this; if (_this.frame != null) throw A.wrapException(A.ImageException$("Duplicate JPG frame data found.")); t1 = _this.frame = new A.JpegFrame(A.LinkedHashMap_LinkedHashMap$_empty(type$.int, type$.JpegComponent), A._setArrayType([], type$.JSArray_int)); t1.progressive = marker === 194; t1.precision = block.readByte$0(); t1 = _this.frame; t1.toString; t1.scanLines = block.readUint16$0(); t1 = _this.frame; t1.toString; t1.samplesPerLine = block.readUint16$0(); numComponents = block.readByte$0(); for (t1 = _this.quantizationTables, i = 0; i < numComponents; ++i) { t2 = block.buffer; t3 = block.offset; t4 = block.offset = t3 + 1; t5 = t2.length; if (!(t3 >= 0 && t3 < t5)) return A.ioore(t2, t3); t3 = t2[t3]; t6 = block.offset = t4 + 1; if (!(t4 >= 0 && t4 < t5)) return A.ioore(t2, t4); t4 = t2[t4]; t7 = B.JSInt_methods._shrOtherPositive$1(t4, 4); block.offset = t6 + 1; if (!(t6 >= 0 && t6 < t5)) return A.ioore(t2, t6); t6 = t2[t6]; B.JSArray_methods.add$1(_this.frame.componentsOrder, t3); _this.frame.components.$indexSet(0, t3, new A.JpegComponent(t7 & 15, t4 & 15, t1, t6)); } _this.frame.prepare$0(); B.JSArray_methods.add$1(_this.frames, _this.frame); }, _readDHT$1(block) { var t1, ht, ht0, t2, t3, t4, index, bits, count, j, huffmanValues, ht1; for (t1 = block.end, ht = this.huffmanTablesDC, ht0 = this.huffmanTablesAC; t2 = block.offset, t2 < t1;) { t3 = block.buffer; t4 = t2 + 1; block.offset = t4; if (!(t2 >= 0 && t2 < t3.length)) return A.ioore(t3, t2); index = t3[t2]; bits = new Uint8Array(16); for (t2 = t4, count = 0, j = 0; j < 16; ++j, t2 = t4) { t4 = t2 + 1; block.offset = t4; if (!(t2 >= 0 && t2 < t3.length)) return A.ioore(t3, t2); t2 = t3[t2]; if (!(j < 16)) return A.ioore(bits, j); bits[j] = t2; count += bits[j]; } huffmanValues = new Uint8Array(count); for (j = 0; j < count; ++j, t2 = t4) { t4 = t2 + 1; block.offset = t4; if (!(t2 >= 0 && t2 < t3.length)) return A.ioore(t3, t2); t2 = t3[t2]; if (!(j < count)) return A.ioore(huffmanValues, j); huffmanValues[j] = t2; } if ((index & 16) !== 0) { index -= 16; ht1 = ht0; } else ht1 = ht; if (ht1.length <= index) B.JSArray_methods.set$length(ht1, index + 1); B.JSArray_methods.$indexSet(ht1, index, this._buildHuffmanTable$2(bits, huffmanValues)); } }, _readSOS$1(block) { var components, spectralStart, spectralEnd, successiveApproximation, t1, t2, t3, _this = this, n = block.readByte$0(); if (n < 1 || n > 4) throw A.wrapException(A.ImageException$("Invalid SOS block")); components = A.List_List$generate(n, new A.JpegData__readSOS_closure(_this, block), true, type$.JpegComponent); spectralStart = block.readByte$0(); spectralEnd = block.readByte$0(); successiveApproximation = block.readByte$0(); t1 = B.JSInt_methods._shrOtherPositive$1(successiveApproximation, 4); t2 = A._lateReadCheck(_this.__JpegData_input, "input"); t3 = _this.frame; t1 = new A.JpegScan(t2, t3, components, _this.resetInterval, spectralStart, spectralEnd, t1 & 15, successiveApproximation & 15); t1.__JpegScan_mcusPerLine = A._lateReadCheck(t3.__JpegFrame_mcusPerLine, "mcusPerLine"); t1.progressive = t3.progressive; t1.decode$0(0); }, _buildHuffmanTable$2(codeLengths, values) { var p, t1, k, i, j, t2, t3, t4, q, t5, code = A._setArrayType([], type$.JSArray__JpegHuffman), $length = 16; while (true) { if (!($length > 0 && codeLengths[$length - 1] === 0)) break; --$length; } B.JSArray_methods.add$1(code, new A._JpegHuffman([])); if (0 >= code.length) return A.ioore(code, 0); p = code[0]; for (t1 = values.length, k = 0, i = 0; i < $length;) { for (j = 0; j < codeLengths[i]; ++j) { if (0 >= code.length) return A.ioore(code, -1); p = code.pop(); t2 = p.children; t3 = t2.length; t4 = p.index; if (t3 <= t4) B.JSArray_methods.set$length(t2, t4 + 1); t3 = p.index; if (!(k >= 0 && k < t1)) return A.ioore(values, k); B.JSArray_methods.$indexSet(t2, t3, values[k]); for (; t2 = p.index, t2 > 0;) { if (0 >= code.length) return A.ioore(code, -1); p = code.pop(); } p.index = t2 + 1; B.JSArray_methods.add$1(code, p); for (; code.length <= i; p = q) { t2 = []; q = new A._JpegHuffman(t2); B.JSArray_methods.add$1(code, q); t3 = p.children; t4 = t3.length; t5 = p.index; if (t4 <= t5) B.JSArray_methods.set$length(t3, t5 + 1); B.JSArray_methods.$indexSet(t3, p.index, t2); } ++k; } ++i; if (i < $length) { t2 = []; q = new A._JpegHuffman(t2); B.JSArray_methods.add$1(code, q); t3 = p.children; t4 = t3.length; t5 = p.index; if (t4 <= t5) B.JSArray_methods.set$length(t3, t5 + 1); B.JSArray_methods.$indexSet(t3, p.index, t2); p = q; } } if (0 >= code.length) return A.ioore(code, 0); return code[0].children; }, _buildComponentData$2(frame, component) { var t4, t5, t6, l, blockRow, scanLine, i, l0, blockCol, t7, sample, offset, j, line, offset0, t8, t1 = A._lateReadCheck(component.__JpegComponent_blocksPerLine, "blocksPerLine"), t2 = A._lateReadCheck(component.__JpegComponent_blocksPerColumn, "blocksPerColumn"), samplesPerLine = t1 << 3 >>> 0, $R = new Int32Array(64), r = new Uint8Array(64), t3 = t2 * 8, lines = A.List_List$filled(t3, null, false, type$.nullable_Uint8List); for (t4 = component.quantizationTableList, t5 = component.quantizationIndex, t6 = type$.Int32List, l = 0, blockRow = 0; blockRow < t2; ++blockRow) { scanLine = blockRow << 3 >>> 0; for (i = 0; i < 8; ++i, l = l0) { l0 = l + 1; B.JSArray_methods.$indexSet(lines, l, new Uint8Array(samplesPerLine)); } for (blockCol = 0; blockCol < t1; ++blockCol) { if (!(t5 >= 0 && t5 < 4)) return A.ioore(t4, t5); t7 = t4[t5]; t7.toString; A.quantizeAndInverse(t7, t6._as(J.$index$asx(J.$index$asx(A._lateReadCheck(component.__JpegComponent_blocks, "blocks"), blockRow), blockCol)), r, $R); sample = blockCol << 3 >>> 0; for (offset = 0, j = 0; j < 8; ++j) { t7 = scanLine + j; if (!(t7 < t3)) return A.ioore(lines, t7); line = lines[t7]; for (i = 0; i < 8; ++i, offset = offset0) { line.toString; t7 = sample + i; offset0 = offset + 1; if (!(offset >= 0 && offset < 64)) return A.ioore(r, offset); t8 = r[offset]; if (!(t7 < line.length)) return A.ioore(line, t7); line[t7] = t8; } } } } return lines; } }; A.JpegData__readSOS_closure.prototype = { call$1(i) { var t2, dc_tbl_no, ac_tbl_no, t3, t4, t1 = this.block, id = t1.readByte$0(), c = t1.readByte$0(); t1 = this.$this; if (!t1.frame.components.containsKey$1(0, id)) throw A.wrapException(A.ImageException$("Invalid Component in SOS block")); t2 = t1.frame.components.$index(0, id); t2.toString; dc_tbl_no = B.JSInt_methods._shrOtherPositive$1(c, 4) & 15; ac_tbl_no = c & 15; t3 = t1.huffmanTablesDC; t4 = t3.length; if (dc_tbl_no < t4) { if (!(dc_tbl_no < t4)) return A.ioore(t3, dc_tbl_no); t3 = t3[dc_tbl_no]; t3.toString; t2.__JpegComponent_huffmanTableDC = t3; } t1 = t1.huffmanTablesAC; t3 = t1.length; if (ac_tbl_no < t3) { if (!(ac_tbl_no < t3)) return A.ioore(t1, ac_tbl_no); t1 = t1[ac_tbl_no]; t1.toString; t2.__JpegComponent_huffmanTableAC = t1; } return t2; }, $signature: 30 }; A._JpegHuffman.prototype = {}; A.JpegFrame.prototype = { prepare$0() { var t1, t2, t3, component, t4, t5, t6, t7, t8, blocksPerLine, t9, blocksPerColumn, blocksPerLineForMcu, blocksPerColumnForMcu, blocks, _i, _list, _i0, _this = this; for (t1 = _this.components, t2 = A._instanceType(t1)._precomputed1, t3 = A.LinkedHashMapKeyIterator$(t1, t1._modifications, t2); t3.moveNext$0();) { component = t1.$index(0, t3.__js_helper$_current); _this.set$maxHSamples(Math.max(_this.maxHSamples, component.hSamples)); _this.set$maxVSamples(Math.max(_this.maxVSamples, component.vSamples)); } t3 = _this.samplesPerLine; t3.toString; _this.__JpegFrame_mcusPerLine = B.JSNumber_methods.ceil$0(t3 / 8 / _this.maxHSamples); t3 = _this.scanLines; t3.toString; _this.__JpegFrame_mcusPerColumn = B.JSNumber_methods.ceil$0(t3 / 8 / _this.maxVSamples); for (t2 = A.LinkedHashMapKeyIterator$(t1, t1._modifications, t2), t3 = type$.List_List_List_int, t4 = type$.Int32List, t5 = type$.List_Int32List; t2.moveNext$0();) { t6 = t1.$index(0, t2.__js_helper$_current); t6.toString; t7 = _this.samplesPerLine; t7.toString; t8 = t6.hSamples; blocksPerLine = B.JSNumber_methods.ceil$0(B.JSNumber_methods.ceil$0(t7 / 8) * t8 / _this.maxHSamples); t7 = _this.scanLines; t7.toString; t9 = t6.vSamples; blocksPerColumn = B.JSNumber_methods.ceil$0(B.JSNumber_methods.ceil$0(t7 / 8) * t9 / _this.maxVSamples); blocksPerLineForMcu = A._lateReadCheck(_this.__JpegFrame_mcusPerLine, "mcusPerLine") * t8; blocksPerColumnForMcu = A._lateReadCheck(_this.__JpegFrame_mcusPerColumn, "mcusPerColumn") * t9; blocks = J.JSArray_JSArray$allocateFixed(blocksPerColumnForMcu, t5); for (_i = 0; _i < blocksPerColumnForMcu; ++_i) { _list = J.JSArray_JSArray$allocateFixed(blocksPerLineForMcu, t4); for (_i0 = 0; _i0 < blocksPerLineForMcu; ++_i0) _list[_i0] = new Int32Array(64); blocks[_i] = _list; } t6.__JpegComponent_blocksPerLine = blocksPerLine; t6.__JpegComponent_blocksPerColumn = blocksPerColumn; t6.set$__JpegComponent_blocks(t3._as(blocks)); } }, set$maxHSamples(maxHSamples) { this.maxHSamples = A._asInt(maxHSamples); }, set$maxVSamples(maxVSamples) { this.maxVSamples = A._asInt(maxVSamples); } }; A.JpegJfif.prototype = {}; A.JpegScan.prototype = { decode$0(_) { var decodeFn, t3, mcuExpected, t4, mcu, i, component, n, t5, blockRow, blockCol, h, v, j, k, t6, t7, t8, t9, _this = this, _s13_ = "blocksPerLine", t1 = _this.components, componentsLength = t1.length, t2 = _this.progressive; t2.toString; if (t2) if (_this.spectralStart === 0) decodeFn = _this.successivePrev === 0 ? _this.get$_decodeDCFirst() : _this.get$_decodeDCSuccessive(); else decodeFn = _this.successivePrev === 0 ? _this.get$_decodeACFirst() : _this.get$_decodeACSuccessive(); else decodeFn = _this.get$_decodeBaseline(); t2 = componentsLength === 1; if (t2) { if (0 >= componentsLength) return A.ioore(t1, 0); t3 = A._lateReadCheck(t1[0].__JpegComponent_blocksPerLine, _s13_); if (0 >= t1.length) return A.ioore(t1, 0); mcuExpected = t3 * A._lateReadCheck(t1[0].__JpegComponent_blocksPerColumn, "blocksPerColumn"); } else mcuExpected = A._lateReadCheck(_this.__JpegScan_mcusPerLine, "mcusPerLine") * A._lateReadCheck(_this.frame.__JpegFrame_mcusPerColumn, "mcusPerColumn"); t3 = _this.resetInterval; if (t3 == null || t3 === 0) _this.resetInterval = mcuExpected; for (t3 = _this.input, t4 = type$.void_Function_2_JpegComponent_and_List_int, mcu = 0; mcu < mcuExpected;) { for (i = 0; i < componentsLength; ++i) { if (!(i < t1.length)) return A.ioore(t1, i); t1[i].__JpegComponent_pred = 0; } _this.eobrun = 0; if (t2) { if (0 >= t1.length) return A.ioore(t1, 0); component = t1[0]; n = 0; while (true) { t5 = _this.resetInterval; t5.toString; if (!(n < t5)) break; t4._as(decodeFn); blockRow = B.JSInt_methods.$tdiv(mcu, A._lateReadCheck(component.__JpegComponent_blocksPerLine, _s13_)); blockCol = B.JSInt_methods.$mod(mcu, A._lateReadCheck(component.__JpegComponent_blocksPerLine, _s13_)); decodeFn.call$2(component, J.$index$asx(J.$index$asx(A._lateReadCheck(component.__JpegComponent_blocks, "blocks"), blockRow), blockCol)); ++mcu; ++n; } } else { n = 0; while (true) { t5 = _this.resetInterval; t5.toString; if (!(n < t5)) break; for (i = 0; i < componentsLength; ++i) { if (!(i < t1.length)) return A.ioore(t1, i); component = t1[i]; h = component.hSamples; v = component.vSamples; for (j = 0; j < v; ++j) for (k = 0; k < h; ++k) _this._decodeMcu$5(component, decodeFn, mcu, j, k); } ++mcu; ++n; } } _this.bitsCount = 0; t5 = t3.buffer; t6 = t3.offset; t7 = t5.length; if (!(t6 >= 0 && t6 < t7)) return A.ioore(t5, t6); t8 = t5[t6]; t9 = t6 + 1; if (!(t9 < t7)) return A.ioore(t5, t9); t9 = t5[t9]; if (t8 === 255) if (t9 >= 208 && t9 <= 215) t3.offset = t6 + 2; else break; } }, _readBit$0() { var t2, nextByte, _this = this, t1 = _this.bitsCount; if (t1 > 0) { --t1; _this.bitsCount = t1; return B.JSInt_methods.$shr(_this.bitsData, t1) & 1; } t1 = _this.input; if (t1.offset >= t1.end) return null; t2 = t1.readByte$0(); _this.bitsData = t2; if (t2 === 255) { nextByte = t1.readByte$0(); if (nextByte !== 0) throw A.wrapException(A.ImageException$("unexpected marker: " + B.JSInt_methods.toRadixString$1((_this.bitsData << 8 | nextByte) >>> 0, 16))); } _this.bitsCount = 7; return B.JSInt_methods._shrOtherPositive$1(_this.bitsData, 7) & 1; }, _jpeg_scan$_decodeHuffman$1(tree) { var t1, node, bit; for (t1 = type$.List_dynamic, node = tree; bit = this._readBit$0(), bit != null;) { node = J.$index$asx(t1._as(node), bit); if (typeof node == "number") return B.JSNumber_methods.toInt$0(node); } return null; }, _receive$1($length) { var n, bit; for (n = 0; $length > 0;) { bit = this._readBit$0(); if (bit == null) return null; n = (n << 1 | bit) >>> 0; --$length; } return n; }, _receiveAndExtend$1($length) { var t1; if ($length === 1) return this._readBit$0() === 1 ? 1 : -1; $length.toString; t1 = this._receive$1($length); t1.toString; if (t1 >= B.JSInt_methods.$shl(1, $length - 1)) return t1; return t1 + B.JSInt_methods.$shl(-1, $length) + 1; }, _decodeBaseline$2(component, zz) { var t2, k, s, r, _this = this, t = _this._jpeg_scan$_decodeHuffman$1(A._lateReadCheck(component.__JpegComponent_huffmanTableDC, "huffmanTableDC")), diff = t === 0 ? 0 : _this._receiveAndExtend$1(t), t1 = A._lateReadCheck(component.__JpegComponent_pred, "pred") + diff; component.__JpegComponent_pred = t1; t2 = J.getInterceptor$ax(zz); t2.$indexSet(zz, 0, A._lateReadCheck(t1, "pred")); for (k = 1; k < 64;) { t1 = _this._jpeg_scan$_decodeHuffman$1(A._lateReadCheck(component.__JpegComponent_huffmanTableAC, "huffmanTableAC")); t1.toString; s = t1 & 15; r = B.JSInt_methods._shrOtherPositive$1(t1, 4); if (s === 0) { if (r < 15) break; k += 16; continue; } k += r; s = _this._receiveAndExtend$1(s); if (!(k >= 0 && k < 80)) return A.ioore(B.List_AZw, k); t2.$indexSet(zz, B.List_AZw[k], s); ++k; } }, _decodeDCFirst$2(component, zz) { var t = this._jpeg_scan$_decodeHuffman$1(A._lateReadCheck(component.__JpegComponent_huffmanTableDC, "huffmanTableDC")), diff = t === 0 ? 0 : B.JSInt_methods._shlPositive$1(this._receiveAndExtend$1(t), this.successive), t1 = A._lateReadCheck(component.__JpegComponent_pred, "pred") + diff; component.__JpegComponent_pred = t1; J.$indexSet$ax(zz, 0, A._lateReadCheck(t1, "pred")); }, _decodeDCSuccessive$2(component, zz) { var t1, t2, t3; type$.List_int._as(zz); t1 = J.getInterceptor$asx(zz); t2 = t1.$index(zz, 0); t3 = this._readBit$0(); t3.toString; t3 = B.JSInt_methods._shlPositive$1(t3, this.successive); if (typeof t2 !== "number") return t2.$or(); t1.$indexSet(zz, 0, (t2 | t3) >>> 0); }, _decodeACFirst$2(component, zz) { var k, e, t2, t3, s, r, _this = this, t1 = _this.eobrun; if (t1 > 0) { _this.eobrun = t1 - 1; return; } k = _this.spectralStart; e = _this.spectralEnd; for (t1 = _this.successive, t2 = J.getInterceptor$ax(zz); k <= e;) { t3 = _this._jpeg_scan$_decodeHuffman$1(A._lateReadCheck(component.__JpegComponent_huffmanTableAC, "huffmanTableAC")); t3.toString; s = t3 & 15; r = B.JSInt_methods._shrOtherPositive$1(t3, 4); if (s === 0) { if (r < 15) { t1 = _this._receive$1(r); t1.toString; _this.eobrun = t1 + B.JSInt_methods._shlPositive$1(1, r) - 1; break; } k += 16; continue; } k += r; if (!(k >= 0 && k < 80)) return A.ioore(B.List_AZw, k); t2.$indexSet(zz, B.List_AZw[k], _this._receiveAndExtend$1(s) * B.JSInt_methods._shlPositive$1(1, t1)); ++k; } }, _decodeACSuccessive$2(component, zz) { var k, e, t1, t2, r, z, rs, s, t3, t4, _this = this; type$.List_int._as(zz); k = _this.spectralStart; e = _this.spectralEnd; for (t1 = J.getInterceptor$asx(zz), t2 = _this.successive, r = 0; k <= e;) { if (!(k >= 0 && k < 80)) return A.ioore(B.List_AZw, k); z = B.List_AZw[k]; switch (_this.successiveACState) { case 0: rs = _this._jpeg_scan$_decodeHuffman$1(A._lateReadCheck(component.__JpegComponent_huffmanTableAC, "huffmanTableAC")); if (rs == null) throw A.wrapException(A.ImageException$("Invalid progressive encoding")); s = rs & 15; r = B.JSInt_methods._shrOtherPositive$1(rs, 4); if (s === 0) if (r < 15) { t3 = _this._receive$1(r); t3.toString; _this.eobrun = t3 + B.JSInt_methods._shlPositive$1(1, r); _this.successiveACState = 4; } else { _this.successiveACState = 1; r = 16; } else { if (s !== 1) throw A.wrapException(A.ImageException$("invalid ACn encoding")); _this.__JpegScan_successiveACNextValue = _this._receiveAndExtend$1(s); _this.successiveACState = r !== 0 ? 2 : 3; } continue; case 1: case 2: if (!J.$eq$(t1.$index(zz, z), 0)) { t3 = t1.$index(zz, z); t4 = _this._readBit$0(); t4.toString; t4 = B.JSInt_methods._shlPositive$1(t4, t2); if (typeof t3 !== "number") return t3.$add(); t1.$indexSet(zz, z, t3 + t4); } else { --r; if (r === 0) _this.successiveACState = _this.successiveACState === 2 ? 3 : 0; } break; case 3: if (!J.$eq$(t1.$index(zz, z), 0)) { t3 = t1.$index(zz, z); t4 = _this._readBit$0(); t4.toString; t4 = B.JSInt_methods._shlPositive$1(t4, t2); if (typeof t3 !== "number") return t3.$add(); t1.$indexSet(zz, z, t3 + t4); } else { t1.$indexSet(zz, z, B.JSInt_methods._shlPositive$1(A._lateReadCheck(_this.__JpegScan_successiveACNextValue, "successiveACNextValue"), t2)); _this.successiveACState = 0; } break; case 4: if (!J.$eq$(t1.$index(zz, z), 0)) { t3 = t1.$index(zz, z); t4 = _this._readBit$0(); t4.toString; t4 = B.JSInt_methods._shlPositive$1(t4, t2); if (typeof t3 !== "number") return t3.$add(); t1.$indexSet(zz, z, t3 + t4); } break; } ++k; } if (_this.successiveACState === 4) if (--_this.eobrun === 0) _this.successiveACState = 0; }, _decodeMcu$5(component, decodeFn, mcu, row, col) { var blockRow, blockCol, _s11_ = "mcusPerLine", _s6_ = "blocks"; type$.void_Function_2_JpegComponent_and_List_int._as(decodeFn); blockRow = B.JSInt_methods.$tdiv(mcu, A._lateReadCheck(this.__JpegScan_mcusPerLine, _s11_)) * component.vSamples + row; blockCol = B.JSInt_methods.$mod(mcu, A._lateReadCheck(this.__JpegScan_mcusPerLine, _s11_)) * component.hSamples + col; if (blockRow >= J.get$length$asx(A._lateReadCheck(component.__JpegComponent_blocks, _s6_))) return; if (blockCol >= J.get$length$asx(J.$index$asx(A._lateReadCheck(component.__JpegComponent_blocks, _s6_), blockRow))) return; decodeFn.call$2(component, J.$index$asx(J.$index$asx(A._lateReadCheck(component.__JpegComponent_blocks, _s6_), blockRow), blockCol)); } }; A.JpegDecoder.prototype = { decodeImage$1(bytes) { var jpeg; type$.List_int._as(bytes); jpeg = A.JpegData$(); jpeg.read$1(0, bytes); if (jpeg.frames.length !== 1) throw A.wrapException(A.ImageException$("only single frame JPEGs supported")); return A.getImageFromJpeg(jpeg); } }; A.JpegEncoder.prototype = { setQuality$1(quality) { quality = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(quality, 1, 100)); if (this.currentQuality === quality) return; this._initQuantTables$1(quality < 50 ? B.JSNumber_methods.floor$0(5000 / quality) : B.JSInt_methods.floor$0(200 - quality * 2)); this.currentQuality = quality; }, encodeImage$1(image) { var t1, t2, imageData, quadWidth, t3, t4, t5, t6, t7, t8, DCY, DCU, DCV, y, t9, t10, x, start, pos, row, col, p, t11, p0, r, g, b, t12, t13, _this = this, fp = A.OutputBuffer$(true, 8192); fp.writeByte$1(255); fp.writeByte$1(216); fp.writeByte$1(255); fp.writeByte$1(224); fp.writeUint16$1(16); fp.writeByte$1(74); fp.writeByte$1(70); fp.writeByte$1(73); fp.writeByte$1(70); fp.writeByte$1(0); fp.writeByte$1(1); fp.writeByte$1(1); fp.writeByte$1(0); fp.writeUint16$1(1); fp.writeUint16$1(1); fp.writeByte$1(0); fp.writeByte$1(0); _this._writeAPP1$2(fp, image.exif); _this._writeDQT$1(fp); t1 = image.width; t2 = image.height; fp.writeByte$1(255); fp.writeByte$1(192); fp.writeUint16$1(17); fp.writeByte$1(8); fp.writeUint16$1(t2); fp.writeUint16$1(t1); fp.writeByte$1(3); fp.writeByte$1(1); fp.writeByte$1(17); fp.writeByte$1(0); fp.writeByte$1(2); fp.writeByte$1(17); fp.writeByte$1(1); fp.writeByte$1(3); fp.writeByte$1(17); fp.writeByte$1(1); _this._writeDHT$1(fp); fp.writeByte$1(255); fp.writeByte$1(218); fp.writeUint16$1(12); fp.writeByte$1(3); fp.writeByte$1(1); fp.writeByte$1(0); fp.writeByte$1(2); fp.writeByte$1(17); fp.writeByte$1(3); fp.writeByte$1(17); fp.writeByte$1(0); fp.writeByte$1(63); fp.writeByte$1(0); _this._bytenew = 0; _this._bytepos = 7; imageData = image.getBytes$0(); quadWidth = t1 * 4; for (t1 = _this.YDU, t3 = _this.fdtbl_Y, t4 = _this.UDU, t5 = _this.fdtbl_UV, t6 = _this.VDU, t7 = imageData.length, t8 = _this.RGB_YUV_TABLE, DCY = 0, DCU = 0, DCV = 0, y = 0; y < t2;) { for (t9 = y + 1, t10 = quadWidth * y, x = 0; x < quadWidth;) { start = t10 + x; for (pos = 0; pos < 64; ++pos) { row = pos >>> 3; col = (pos & 7) * 4; p = start + row * quadWidth + col; if (y + row >= t2) p -= quadWidth * (t9 + row - t2); t11 = x + col; if (t11 >= quadWidth) p -= t11 - quadWidth + 4; p0 = p + 1; if (!(p >= 0 && p < t7)) return A.ioore(imageData, p); r = imageData[p]; p = p0 + 1; if (!(p0 >= 0 && p0 < t7)) return A.ioore(imageData, p0); g = imageData[p0]; if (!(p >= 0 && p < t7)) return A.ioore(imageData, p); b = imageData[p]; if (!(r < 2048)) return A.ioore(t8, r); t11 = t8[r]; t12 = g + 256; if (!(t12 < 2048)) return A.ioore(t8, t12); t12 = t8[t12]; t13 = b + 512; if (!(t13 < 2048)) return A.ioore(t8, t13); t1[pos] = B.JSInt_methods._shrOtherPositive$1(t11 + t12 + t8[t13], 16) - 128; t13 = r + 768; if (!(t13 < 2048)) return A.ioore(t8, t13); t13 = t8[t13]; t12 = g + 1024; if (!(t12 < 2048)) return A.ioore(t8, t12); t12 = t8[t12]; t11 = b + 1280; if (!(t11 < 2048)) return A.ioore(t8, t11); t4[pos] = B.JSInt_methods._shrOtherPositive$1(t13 + t12 + t8[t11], 16) - 128; t11 = r + 1280; if (!(t11 < 2048)) return A.ioore(t8, t11); t11 = t8[t11]; t12 = g + 1536; if (!(t12 < 2048)) return A.ioore(t8, t12); t12 = t8[t12]; t13 = b + 1792; if (!(t13 < 2048)) return A.ioore(t8, t13); t6[pos] = B.JSInt_methods._shrOtherPositive$1(t11 + t12 + t8[t13], 16) - 128; } DCY = _this._processDU$6(fp, t1, t3, DCY, _this.YDC_HT, A._lateReadCheck(_this.__JpegEncoder_YAC_HT, "YAC_HT")); DCU = _this._processDU$6(fp, t4, t5, DCU, _this.UVDC_HT, A._lateReadCheck(_this.__JpegEncoder_UVAC_HT, "UVAC_HT")); DCV = _this._processDU$6(fp, t6, t5, DCV, _this.UVDC_HT, A._lateReadCheck(_this.__JpegEncoder_UVAC_HT, "UVAC_HT")); x += 32; } y += 8; } t1 = _this._bytepos; if (t1 >= 0) { ++t1; _this._writeBits$2(fp, A._setArrayType([B.JSInt_methods.$shl(1, t1) - 1, t1], type$.JSArray_int)); } fp.writeByte$1(255); fp.writeByte$1(217); return A.NativeUint8List_NativeUint8List$view(fp._buffer.buffer, 0, fp.length); }, _initQuantTables$1(sf) { var t1, i, t, t2, j, u, t3, t4, k, row, col, t5, t6, t7, t8, _this = this; for (t1 = _this.YTable, i = 0; i < 64; ++i) { t = B.JSNumber_methods.floor$0((B.List_kcl0[i] * sf + 50) / 100); if (t < 1) t = 1; else if (t > 255) t = 255; t2 = B.List_kcl[i]; if (!(t2 < 64)) return A.ioore(t1, t2); t1[t2] = t; } for (t2 = _this.UVTable, j = 0; j < 64; ++j) { u = B.JSNumber_methods.floor$0((B.List_kcl1[j] * sf + 50) / 100); if (u < 1) u = 1; else if (u > 255) u = 255; t3 = B.List_kcl[j]; if (!(t3 < 64)) return A.ioore(t2, t3); t2[t3] = u; } for (t3 = _this.fdtbl_Y, t4 = _this.fdtbl_UV, k = 0, row = 0; row < 8; ++row) for (col = 0; col < 8; ++col) { if (!(k >= 0 && k < 64)) return A.ioore(B.List_kcl, k); t5 = B.List_kcl[k]; if (!(t5 < 64)) return A.ioore(t1, t5); t6 = t1[t5]; t7 = B.List_K2a[row]; t8 = B.List_K2a[col]; t3[k] = 1 / (t6 * t7 * t8 * 8); t4[k] = 1 / (t2[t5] * t7 * t8 * 8); ++k; } }, _computeHuffmanTbl$2(nrcodes, std_table) { var HT, t2, codevalue, pos_in_table, k, j, index, t1 = type$.List_int; t1._as(nrcodes); t1._as(std_table); t1 = type$.JSArray_int; HT = A._setArrayType([A._setArrayType([], t1)], type$.JSArray_nullable_List_int); for (t2 = std_table.length, codevalue = 0, pos_in_table = 0, k = 1; k <= 16; ++k) { for (j = 1; j <= nrcodes[k]; ++j) { if (!(pos_in_table >= 0 && pos_in_table < t2)) return A.ioore(std_table, pos_in_table); index = std_table[pos_in_table]; if (HT.length <= index) B.JSArray_methods.set$length(HT, index + 1); B.JSArray_methods.$indexSet(HT, index, A._setArrayType([codevalue, k], t1)); ++pos_in_table; ++codevalue; } codevalue *= 2; } return HT; }, _initCategoryNumber$0() { var t1, t2, t3, nrlower, nrupper, cat, nr, t4, nrneg, t5, t6; for (t1 = this.category, t2 = this.bitcode, t3 = type$.JSArray_int, nrlower = 1, nrupper = 2, cat = 1; cat <= 15; ++cat) { for (nr = nrlower; nr < nrupper; ++nr) { t4 = 32767 + nr; B.JSArray_methods.$indexSet(t1, t4, cat); B.JSArray_methods.$indexSet(t2, t4, A._setArrayType([nr, cat], t3)); } for (t4 = nrupper - 1, nrneg = -t4, t5 = -nrlower; nrneg <= t5; ++nrneg) { t6 = 32767 + nrneg; B.JSArray_methods.$indexSet(t1, t6, cat); B.JSArray_methods.$indexSet(t2, t6, A._setArrayType([t4 + nrneg, cat], t3)); } nrlower = nrlower << 1 >>> 0; nrupper = nrupper << 1 >>> 0; } }, _initRGBYUVTable$0() { var t1, i; for (t1 = this.RGB_YUV_TABLE, i = 0; i < 256; ++i) { t1[i] = 19595 * i; t1[i + 256] = 38470 * i; t1[i + 512] = 7471 * i + 32768; t1[i + 768] = -11059 * i; t1[i + 1024] = -21709 * i; t1[i + 1280] = 32768 * i + 8421375; t1[i + 1536] = -27439 * i; t1[i + 1792] = -5329 * i; } }, _fDCTQuant$2(data, fdtbl) { var dataOff, i, d0, d1, t2, d2, t3, d3, t4, d4, t5, d5, t6, d6, t7, d7, tmp0, tmp7, tmp1, tmp6, tmp2, tmp5, tmp3, tmp10, tmp13, tmp11, z1, tmp12, z5, z2, z4, z3, z11, z13, tmp0p2, tmp7p2, tmp1p2, tmp6p2, tmp2p2, tmp5p2, tmp3p2, tmp10p2, tmp13p2, tmp11p2, z1p2, tmp12p2, z5p2, z2p2, z4p2, z3p2, z11p2, z13p2, fDCTQuant, t1 = type$.List_double; t1._as(data); t1._as(fdtbl); for (dataOff = 0, i = 0; i < 8; ++i) { if (!(dataOff < 64)) return A.ioore(data, dataOff); d0 = data[dataOff]; t1 = dataOff + 1; if (!(t1 < 64)) return A.ioore(data, t1); d1 = data[t1]; t2 = dataOff + 2; if (!(t2 < 64)) return A.ioore(data, t2); d2 = data[t2]; t3 = dataOff + 3; if (!(t3 < 64)) return A.ioore(data, t3); d3 = data[t3]; t4 = dataOff + 4; if (!(t4 < 64)) return A.ioore(data, t4); d4 = data[t4]; t5 = dataOff + 5; if (!(t5 < 64)) return A.ioore(data, t5); d5 = data[t5]; t6 = dataOff + 6; if (!(t6 < 64)) return A.ioore(data, t6); d6 = data[t6]; t7 = dataOff + 7; if (!(t7 < 64)) return A.ioore(data, t7); d7 = data[t7]; tmp0 = d0 + d7; tmp7 = d0 - d7; tmp1 = d1 + d6; tmp6 = d1 - d6; tmp2 = d2 + d5; tmp5 = d2 - d5; tmp3 = d3 + d4; tmp10 = tmp0 + tmp3; tmp13 = tmp0 - tmp3; tmp11 = tmp1 + tmp2; if (!(dataOff < 64)) return A.ioore(data, dataOff); data[dataOff] = tmp10 + tmp11; if (!(t4 < 64)) return A.ioore(data, t4); data[t4] = tmp10 - tmp11; z1 = (tmp1 - tmp2 + tmp13) * 0.707106781; if (!(t2 < 64)) return A.ioore(data, t2); data[t2] = tmp13 + z1; if (!(t6 < 64)) return A.ioore(data, t6); data[t6] = tmp13 - z1; tmp10 = d3 - d4 + tmp5; tmp12 = tmp6 + tmp7; z5 = (tmp10 - tmp12) * 0.382683433; z2 = 0.5411961 * tmp10 + z5; z4 = 1.306562965 * tmp12 + z5; z3 = (tmp5 + tmp6) * 0.707106781; z11 = tmp7 + z3; z13 = tmp7 - z3; if (!(t5 < 64)) return A.ioore(data, t5); data[t5] = z13 + z2; if (!(t3 < 64)) return A.ioore(data, t3); data[t3] = z13 - z2; if (!(t1 < 64)) return A.ioore(data, t1); data[t1] = z11 + z4; if (!(t7 < 64)) return A.ioore(data, t7); data[t7] = z11 - z4; dataOff += 8; } for (dataOff = 0, i = 0; i < 8; ++i) { if (!(dataOff < 64)) return A.ioore(data, dataOff); d0 = data[dataOff]; t1 = dataOff + 8; if (!(t1 < 64)) return A.ioore(data, t1); d1 = data[t1]; t2 = dataOff + 16; if (!(t2 < 64)) return A.ioore(data, t2); d2 = data[t2]; t3 = dataOff + 24; if (!(t3 < 64)) return A.ioore(data, t3); d3 = data[t3]; t4 = dataOff + 32; if (!(t4 < 64)) return A.ioore(data, t4); d4 = data[t4]; t5 = dataOff + 40; if (!(t5 < 64)) return A.ioore(data, t5); d5 = data[t5]; t6 = dataOff + 48; if (!(t6 < 64)) return A.ioore(data, t6); d6 = data[t6]; t7 = dataOff + 56; if (!(t7 < 64)) return A.ioore(data, t7); d7 = data[t7]; tmp0p2 = d0 + d7; tmp7p2 = d0 - d7; tmp1p2 = d1 + d6; tmp6p2 = d1 - d6; tmp2p2 = d2 + d5; tmp5p2 = d2 - d5; tmp3p2 = d3 + d4; tmp10p2 = tmp0p2 + tmp3p2; tmp13p2 = tmp0p2 - tmp3p2; tmp11p2 = tmp1p2 + tmp2p2; if (!(dataOff < 64)) return A.ioore(data, dataOff); data[dataOff] = tmp10p2 + tmp11p2; if (!(t4 < 64)) return A.ioore(data, t4); data[t4] = tmp10p2 - tmp11p2; z1p2 = (tmp1p2 - tmp2p2 + tmp13p2) * 0.707106781; if (!(t2 < 64)) return A.ioore(data, t2); data[t2] = tmp13p2 + z1p2; if (!(t6 < 64)) return A.ioore(data, t6); data[t6] = tmp13p2 - z1p2; tmp10p2 = d3 - d4 + tmp5p2; tmp12p2 = tmp6p2 + tmp7p2; z5p2 = (tmp10p2 - tmp12p2) * 0.382683433; z2p2 = 0.5411961 * tmp10p2 + z5p2; z4p2 = 1.306562965 * tmp12p2 + z5p2; z3p2 = (tmp5p2 + tmp6p2) * 0.707106781; z11p2 = tmp7p2 + z3p2; z13p2 = tmp7p2 - z3p2; if (!(t5 < 64)) return A.ioore(data, t5); data[t5] = z13p2 + z2p2; if (!(t3 < 64)) return A.ioore(data, t3); data[t3] = z13p2 - z2p2; if (!(t1 < 64)) return A.ioore(data, t1); data[t1] = z11p2 + z4p2; if (!(t7 < 64)) return A.ioore(data, t7); data[t7] = z11p2 - z4p2; ++dataOff; } for (t1 = this.outputfDCTQuant, i = 0; i < 64; ++i) { fDCTQuant = data[i] * fdtbl[i]; B.JSArray_methods.$indexSet(t1, i, fDCTQuant > 0 ? B.JSNumber_methods.toInt$0(fDCTQuant + 0.5) : B.JSNumber_methods.toInt$0(fDCTQuant - 0.5)); } return t1; }, _writeAPP1$2(out, exif) { var t2, _i, rawData, t1 = exif.rawData; if (t1 == null) return; for (t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, A.throwConcurrentModificationError)(t1), ++_i) { rawData = t1[_i]; out.writeByte$1(255); out.writeByte$1(225); out.writeUint16$1(rawData.length + 2); out.writeBytes$1(rawData); } }, _writeDQT$1(out) { var t1, i, j; out.writeByte$1(255); out.writeByte$1(219); out.writeUint16$1(132); out.writeByte$1(0); for (t1 = this.YTable, i = 0; i < 64; ++i) out.writeByte$1(t1[i]); out.writeByte$1(1); for (t1 = this.UVTable, j = 0; j < 64; ++j) out.writeByte$1(t1[j]); }, _writeDHT$1(out) { var i, j, k, l, m, n, o, p; out.writeByte$1(255); out.writeByte$1(196); out.writeUint16$1(418); out.writeByte$1(0); for (i = 0; i < 16;) { ++i; out.writeByte$1(B.List_F1L0[i]); } for (j = 0; j <= 11; ++j) out.writeByte$1(B.List_UiL[j]); out.writeByte$1(16); for (k = 0; k < 16;) { ++k; out.writeByte$1(B.List_F1L2[k]); } for (l = 0; l <= 161; ++l) out.writeByte$1(B.List_G61[l]); out.writeByte$1(1); for (m = 0; m < 16;) { ++m; out.writeByte$1(B.List_F1L1[m]); } for (n = 0; n <= 11; ++n) out.writeByte$1(B.List_UiL[n]); out.writeByte$1(17); for (o = 0; o < 16;) { ++o; out.writeByte$1(B.List_F1L3[o]); } for (p = 0; p <= 161; ++p) out.writeByte$1(B.List_AKW[p]); }, _processDU$6(out, CDU, fdtbl, DC, HTDC, HTAC) { var EOB, M16zeroes, DU_DCT, j, t2, Diff, t3, pos, end0pos, t4, i, i0, nrzeroes, lng, nrmarker, t5, _this = this, t1 = type$.List_double; t1._as(CDU); t1._as(fdtbl); type$.nullable_List_nullable_List_int._as(HTDC); type$.List_nullable_List_int._as(HTAC); t1 = HTAC.length; if (0 >= t1) return A.ioore(HTAC, 0); EOB = HTAC[0]; if (240 >= t1) return A.ioore(HTAC, 240); M16zeroes = HTAC[240]; DU_DCT = _this._fDCTQuant$2(CDU, fdtbl); for (t1 = _this.DU, j = 0; j < 64; ++j) B.JSArray_methods.$indexSet(t1, B.List_kcl[j], DU_DCT[j]); t2 = t1[0]; t2.toString; Diff = t2 - DC; if (Diff === 0) { if (0 >= HTDC.length) return A.ioore(HTDC, 0); t3 = HTDC[0]; t3.toString; _this._writeBits$2(out, t3); } else { pos = 32767 + Diff; HTDC.toString; t3 = _this.category; if (!(pos >= 0 && pos < 65535)) return A.ioore(t3, pos); t3 = t3[pos]; t3.toString; if (!(t3 < HTDC.length)) return A.ioore(HTDC, t3); t3 = HTDC[t3]; t3.toString; _this._writeBits$2(out, t3); t3 = _this.bitcode[pos]; t3.toString; _this._writeBits$2(out, t3); } end0pos = 63; while (true) { if (!(end0pos > 0 && t1[end0pos] === 0)) break; --end0pos; } if (end0pos === 0) { EOB.toString; _this._writeBits$2(out, EOB); return t2; } for (t3 = _this.category, t4 = _this.bitcode, i = 1; i <= end0pos;) { i0 = i; while (true) { if (!(i0 >= 0 && i0 < 64)) return A.ioore(t1, i0); if (!(t1[i0] === 0 && i0 <= end0pos)) break; ++i0; } nrzeroes = i0 - i; if (nrzeroes >= 16) { lng = B.JSInt_methods._shrOtherPositive$1(nrzeroes, 4); for (nrmarker = 1; nrmarker <= lng; ++nrmarker) { M16zeroes.toString; _this._writeBits$2(out, M16zeroes); } nrzeroes &= 15; } t5 = t1[i0]; t5.toString; pos = 32767 + t5; if (!(pos >= 0 && pos < 65535)) return A.ioore(t3, pos); t5 = t3[pos]; t5.toString; t5 = (nrzeroes << 4 >>> 0) + t5; if (!(t5 < HTAC.length)) return A.ioore(HTAC, t5); t5 = HTAC[t5]; t5.toString; _this._writeBits$2(out, t5); t5 = t4[pos]; t5.toString; _this._writeBits$2(out, t5); i = i0 + 1; } if (end0pos !== 63) { EOB.toString; _this._writeBits$2(out, EOB); } return t2; }, _writeBits$2(out, bits) { var t1, value, posval, _this = this; type$.List_int._as(bits); t1 = J.getInterceptor$asx(bits); value = t1.$index(bits, 0); t1 = t1.$index(bits, 1); if (typeof t1 !== "number") return t1.$sub(); posval = t1 - 1; for (; posval >= 0;) { if ((value & B.JSInt_methods.$shl(1, posval)) >>> 0 !== 0) _this._bytenew = (_this._bytenew | B.JSInt_methods.$shl(1, _this._bytepos)) >>> 0; --posval; if (--_this._bytepos < 0) { t1 = _this._bytenew; if (t1 === 255) { out.writeByte$1(255); out.writeByte$1(0); } else out.writeByte$1(t1); _this._bytepos = 7; _this._bytenew = 0; } } }, set$YDC_HT(YDC_HT) { this.YDC_HT = type$.nullable_List_nullable_List_int._as(YDC_HT); }, set$UVDC_HT(UVDC_HT) { this.UVDC_HT = type$.nullable_List_nullable_List_int._as(UVDC_HT); }, set$__JpegEncoder_YAC_HT(__JpegEncoder_YAC_HT) { this.__JpegEncoder_YAC_HT = type$.List_nullable_List_int._as(__JpegEncoder_YAC_HT); }, set$__JpegEncoder_UVAC_HT(__JpegEncoder_UVAC_HT) { this.__JpegEncoder_UVAC_HT = type$.List_nullable_List_int._as(__JpegEncoder_UVAC_HT); } }; A.PngFrame.prototype = {}; A.InternalPngFrame.prototype = {}; A.PngInfo.prototype = { set$palette(palette) { this.palette = type$.nullable_List_nullable_int._as(palette); }, set$transparency(transparency) { this.transparency = type$.nullable_List_int._as(transparency); }, set$colorLut(colorLut) { this.colorLut = type$.nullable_List_nullable_int._as(colorLut); } }; A.InternalPngInfo.prototype = {}; A.PngDecoder.prototype = { isValidFile$1(data) { var t1, t2, t3, i, t4, pngHeader = A.InputBuffer$(type$.List_int._as(data), true, null, 0).readBytes$1(8); for (t1 = pngHeader.buffer, t2 = pngHeader.offset, t3 = t1.length, i = 0; i < 8; ++i) { t4 = t2 + i; if (!(t4 >= 0 && t4 < t3)) return A.ioore(t1, t4); if (t1[t4] !== B.List_2Vk[i]) return false; } return true; }, startDecode$1(data) { var pngHeader, t3, t4, i, t5, inputPos, chunkSize, chunkType, bytes, txtData, l, key, text, hdr, hdrBytes, t6, t7, t8, t9, crc, gammaInt, frame, p3, r, g, b, _this = this, _null = null, _s6_ = "_input", t1 = type$.List_int, t2 = A.InputBuffer$(t1._as(data), true, _null, 0); _this.__PngDecoder__input = t2; pngHeader = A._lateReadCheck(t2, _s6_).readBytes$1(8); for (t2 = pngHeader.buffer, t3 = pngHeader.offset, t4 = t2.length, i = 0; i < 8; ++i) { t5 = t3 + i; if (!(t5 >= 0 && t5 < t4)) return A.ioore(t2, t5); if (t2[t5] !== B.List_2Vk[i]) return _null; } for (t2 = type$.JSArray_int, t3 = type$.String, t4 = type$.JSArray_PngFrame; true;) { t5 = A._lateReadCheck(_this.__PngDecoder__input, _s6_); inputPos = t5.offset - t5.start; chunkSize = A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint32$0(); chunkType = A._lateReadCheck(_this.__PngDecoder__input, _s6_).readString$1(4); switch (chunkType) { case "tEXt": if (_this._png_decoder$_info == null) _this._png_decoder$_info = new A.InternalPngInfo(A.LinkedHashMap_LinkedHashMap$_empty(t3, t3), A._setArrayType([], t4), A._setArrayType([], t2)); t5 = A._lateReadCheck(_this.__PngDecoder__input, _s6_); bytes = t5.subset$1(chunkSize); t5.offset = t5.offset + (bytes.end - bytes.offset); txtData = bytes.toUint8List$0(); for (l = txtData.length, i = 0; i < l; ++i) if (txtData[i] === 0) { key = B.C_Latin1Codec.decode$1(0, new Uint8Array(txtData.subarray(0, A._checkValidRange(0, i, l)))); t5 = i + 1; text = B.C_Latin1Codec.decode$1(0, new Uint8Array(txtData.subarray(t5, A._checkValidRange(t5, _null, l)))); _this._png_decoder$_info.textData.$indexSet(0, key, text); break; } A._lateReadCheck(_this.__PngDecoder__input, _s6_).offset += 4; break; case "IHDR": t5 = A._lateReadCheck(_this.__PngDecoder__input, _s6_); bytes = t5.subset$1(chunkSize); t5.offset = t5.offset + (bytes.end - bytes.offset); hdr = A.InputBuffer$from(bytes, _null, 0); hdrBytes = hdr.toUint8List$0(); t5 = new A.InternalPngInfo(A.LinkedHashMap_LinkedHashMap$_empty(t3, t3), A._setArrayType([], t4), A._setArrayType([], t2)); _this._png_decoder$_info = t5; t5.width = hdr.readUint32$0(); t5 = _this._png_decoder$_info; t5.toString; t5.height = hdr.readUint32$0(); t5 = _this._png_decoder$_info; t5.toString; t6 = hdr.buffer; t7 = hdr.offset; t8 = hdr.offset = t7 + 1; t9 = t6.length; if (!(t7 >= 0 && t7 < t9)) return A.ioore(t6, t7); t5.bits = t6[t7]; t7 = hdr.offset = t8 + 1; if (!(t8 >= 0 && t8 < t9)) return A.ioore(t6, t8); t5.colorType = t6[t8]; t8 = hdr.offset = t7 + 1; if (!(t7 >= 0 && t7 < t9)) return A.ioore(t6, t7); t7 = hdr.offset = t8 + 1; if (!(t8 >= 0 && t8 < t9)) return A.ioore(t6, t8); t5.filterMethod = t6[t8]; hdr.offset = t7 + 1; if (!(t7 >= 0 && t7 < t9)) return A.ioore(t6, t7); t5.interlaceMethod = t6[t7]; if (!B.JSArray_methods.contains$1(A._setArrayType([0, 2, 3, 4, 6], t2), _this._png_decoder$_info.colorType)) return _null; t5 = _this._png_decoder$_info; if (t5.filterMethod !== 0) return _null; switch (t5.colorType) { case 0: if (!B.JSArray_methods.contains$1(A._setArrayType([1, 2, 4, 8, 16], t2), _this._png_decoder$_info.bits)) return _null; break; case 2: if (!B.JSArray_methods.contains$1(A._setArrayType([8, 16], t2), _this._png_decoder$_info.bits)) return _null; break; case 3: if (!B.JSArray_methods.contains$1(A._setArrayType([1, 2, 4, 8], t2), _this._png_decoder$_info.bits)) return _null; break; case 4: if (!B.JSArray_methods.contains$1(A._setArrayType([8, 16], t2), _this._png_decoder$_info.bits)) return _null; break; case 6: if (!B.JSArray_methods.contains$1(A._setArrayType([8, 16], t2), _this._png_decoder$_info.bits)) return _null; break; } if (A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint32$0() !== A.getCrc32(t1._as(hdrBytes), A.getCrc32(new A.CodeUnits(chunkType), 0))) throw A.wrapException(A.ImageException$("Invalid " + chunkType + " checksum")); break; case "PLTE": t5 = _this._png_decoder$_info; t5.toString; t6 = A._lateReadCheck(_this.__PngDecoder__input, _s6_); bytes = t6.subset$1(chunkSize); t6.offset = t6.offset + (bytes.end - bytes.offset); t5.set$palette(bytes.toUint8List$0()); if (A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint32$0() !== A.getCrc32(t1._as(t1._as(_this._png_decoder$_info.palette)), A.getCrc32(new A.CodeUnits(chunkType), 0))) throw A.wrapException(A.ImageException$("Invalid " + chunkType + " checksum")); break; case "tRNS": t5 = _this._png_decoder$_info; t5.toString; t6 = A._lateReadCheck(_this.__PngDecoder__input, _s6_); bytes = t6.subset$1(chunkSize); t6.offset = t6.offset + (bytes.end - bytes.offset); t5.set$transparency(bytes.toUint8List$0()); crc = A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint32$0(); t5 = _this._png_decoder$_info.transparency; t5.toString; if (crc !== A.getCrc32(t1._as(t5), A.getCrc32(new A.CodeUnits(chunkType), 0))) throw A.wrapException(A.ImageException$("Invalid " + chunkType + " checksum")); break; case "IEND": A._lateReadCheck(_this.__PngDecoder__input, _s6_).offset += 4; break; case "gAMA": if (chunkSize !== 4) throw A.wrapException(A.ImageException$("Invalid gAMA chunk")); gammaInt = A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint32$0(); A._lateReadCheck(_this.__PngDecoder__input, _s6_).offset += 4; if (gammaInt !== 100000) _this._png_decoder$_info.gamma = gammaInt / 100000; break; case "IDAT": B.JSArray_methods.add$1(_this._png_decoder$_info._idat, inputPos); A._lateReadCheck(_this.__PngDecoder__input, _s6_).offset += chunkSize; A._lateReadCheck(_this.__PngDecoder__input, _s6_).offset += 4; break; case "acTL": _this._png_decoder$_info.toString; A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint32$0(); _this._png_decoder$_info.toString; A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint32$0(); A._lateReadCheck(_this.__PngDecoder__input, _s6_).offset += 4; break; case "fcTL": frame = new A.InternalPngFrame(A._setArrayType([], t2)); B.JSArray_methods.add$1(_this._png_decoder$_info.frames, frame); A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint32$0(); frame.width = A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint32$0(); frame.height = A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint32$0(); A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint32$0(); A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint32$0(); A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint16$0(); A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint16$0(); t5 = A._lateReadCheck(_this.__PngDecoder__input, _s6_); t6 = t5.buffer; t5 = t5.offset++; if (!(t5 >= 0 && t5 < t6.length)) return A.ioore(t6, t5); t6 = A._lateReadCheck(_this.__PngDecoder__input, _s6_); t5 = t6.buffer; t6 = t6.offset++; if (!(t6 >= 0 && t6 < t5.length)) return A.ioore(t5, t6); A._lateReadCheck(_this.__PngDecoder__input, _s6_).offset += 4; break; case "fdAT": A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint32$0(); B.JSArray_methods.add$1(B.JSArray_methods.get$last(_this._png_decoder$_info.frames)._fdat, inputPos); A._lateReadCheck(_this.__PngDecoder__input, _s6_).offset += chunkSize - 4; A._lateReadCheck(_this.__PngDecoder__input, _s6_).offset += 4; break; case "bKGD": t5 = _this._png_decoder$_info.colorType; if (t5 === 3) { t5 = A._lateReadCheck(_this.__PngDecoder__input, _s6_); t6 = t5.buffer; t5 = t5.offset++; if (!(t5 >= 0 && t5 < t6.length)) return A.ioore(t6, t5); --chunkSize; p3 = t6[t5] * 3; t5 = _this._png_decoder$_info.palette; t6 = t5.length; if (!(p3 >= 0 && p3 < t6)) return A.ioore(t5, p3); r = t5[p3]; t7 = p3 + 1; if (!(t7 < t6)) return A.ioore(t5, t7); g = t5[t7]; t7 = p3 + 2; if (!(t7 < t6)) return A.ioore(t5, t7); b = t5[t7]; B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(255, 0, 255)); B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(b, 0, 255)); B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(g, 0, 255)); B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(r, 0, 255)); } else if (t5 === 0 || t5 === 4) { A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint16$0(); chunkSize -= 2; } else if (t5 === 2 || t5 === 6) { A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint16$0(); A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint16$0(); A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint16$0(); chunkSize -= 24; } if (chunkSize > 0) A._lateReadCheck(_this.__PngDecoder__input, _s6_).offset += chunkSize; A._lateReadCheck(_this.__PngDecoder__input, _s6_).offset += 4; break; case "iCCP": t5 = _this._png_decoder$_info; t5.toString; t5.iCCPName = A._lateReadCheck(_this.__PngDecoder__input, _s6_).readString$0(); _this._png_decoder$_info.toString; t5 = A._lateReadCheck(_this.__PngDecoder__input, _s6_); t6 = t5.buffer; t5 = t5.offset++; if (!(t5 >= 0 && t5 < t6.length)) return A.ioore(t6, t5); t6 = _this._png_decoder$_info.iCCPName; t5 = A._lateReadCheck(_this.__PngDecoder__input, _s6_); bytes = t5.subset$1(chunkSize - (t6.length + 2)); t5.offset = t5.offset + (bytes.end - bytes.offset); t5 = _this._png_decoder$_info; t5.toString; t5.iCCPData = bytes.toUint8List$0(); A._lateReadCheck(_this.__PngDecoder__input, _s6_).offset += 4; break; default: A._lateReadCheck(_this.__PngDecoder__input, _s6_).offset += chunkSize; A._lateReadCheck(_this.__PngDecoder__input, _s6_).offset += 4; break; } if (chunkType === "IEND") break; t5 = A._lateReadCheck(_this.__PngDecoder__input, _s6_); if (t5.offset >= t5.end) return _null; } return _this._png_decoder$_info; }, decodeFrame$1(frame) { var imageData, t1, width, height, t2, t3, len, i, chunkSize, chunkType, bytes, data, f, channels, image, input, t4, origW, origH, _this = this, _null = null, _s6_ = "_input"; if (_this._png_decoder$_info == null) return _null; imageData = A._setArrayType([], type$.JSArray_int); t1 = _this._png_decoder$_info; width = t1.width; height = t1.height; t2 = t1.frames; t3 = t2.length; if (t3 === 0 || frame === 0) for (len = t1._idat.length, t1 = type$.List_int, i = 0; i < len; ++i) { t2 = A._lateReadCheck(_this.__PngDecoder__input, _s6_); t3 = _this._png_decoder$_info._idat; if (!(i < t3.length)) return A.ioore(t3, i); t2.offset = t3[i]; chunkSize = A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint32$0(); chunkType = A._lateReadCheck(_this.__PngDecoder__input, _s6_).readString$1(4); t3 = A._lateReadCheck(_this.__PngDecoder__input, _s6_); bytes = t3.subset$1(chunkSize); t3.offset = t3.offset + (bytes.end - bytes.offset); data = bytes.toUint8List$0(); B.JSArray_methods.addAll$1(imageData, data); if (A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint32$0() !== A.getCrc32(t1._as(data), A.getCrc32(new A.CodeUnits(chunkType), 0))) throw A.wrapException(A.ImageException$("Invalid " + chunkType + " checksum")); } else { if (frame >= t3) throw A.wrapException(A.ImageException$("Invalid Frame Number: " + frame)); f = t2[frame]; width = f.width; height = f.height; for (t1 = f._fdat, i = 0; i < t1.length; ++i) { t2 = A._lateReadCheck(_this.__PngDecoder__input, _s6_); if (!(i < t1.length)) return A.ioore(t1, i); t2.offset = t1[i]; chunkSize = A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint32$0(); A._lateReadCheck(_this.__PngDecoder__input, _s6_).readString$1(4); A._lateReadCheck(_this.__PngDecoder__input, _s6_).offset += 4; t2 = A._lateReadCheck(_this.__PngDecoder__input, _s6_); bytes = t2.subset$1(chunkSize); t2.offset = t2.offset + (bytes.end - bytes.offset); B.JSArray_methods.addAll$1(imageData, bytes.toUint8List$0()); } } t1 = _this._png_decoder$_info; t2 = t1.colorType; channels = t2 === 4 || t2 === 6 || t1.transparency != null ? B.Channels_1 : B.Channels_0; width.toString; height.toString; image = A.Image$(width, height, channels, _null, _null); input = A.InputBuffer$(B.C__ZLibDecoder.decodeBuffer$2$verify(A.InputStream$(type$.List_int._as(imageData), 1, _null, 0), false), true, _null, 0); _this._png_decoder$_bitBufferLen = _this._png_decoder$_bitBuffer = 0; t1 = _this._png_decoder$_info; if (t1.colorLut == null) { t1.set$colorLut(A.List_List$generate(256, new A.PngDecoder_decodeFrame_closure(), false, type$.int)); t1 = _this._png_decoder$_info; t2 = t1.palette; if (t2 != null && t1.gamma != null) for (t3 = t2.length, t1 = t1.colorLut, i = 0; i < t3; ++i) { t1.toString; t4 = t2[i]; if (!(t4 < 256)) return A.ioore(t1, t4); t2[i] = t1[t4]; } } t1 = _this._png_decoder$_info; origW = t1.width; origH = t1.height; t1.width = width; t1.height = height; _this._progressY = 0; if (t1.interlaceMethod !== 0) { t1 = B.JSInt_methods._shrOtherPositive$1(width + 7, 3); t2 = B.JSInt_methods._shrOtherPositive$1(height + 7, 3); _this._processPass$8(input, image, 0, 0, 8, 8, t1, t2); t1 = width + 3; _this._processPass$8(input, image, 4, 0, 8, 8, B.JSInt_methods._shrOtherPositive$1(t1, 3), t2); t2 = height + 3; _this._processPass$8(input, image, 0, 4, 4, 8, B.JSInt_methods._shrOtherPositive$1(t1, 2), B.JSInt_methods._shrOtherPositive$1(t2, 3)); t1 = width + 1; _this._processPass$8(input, image, 2, 0, 4, 4, B.JSInt_methods._shrOtherPositive$1(t1, 2), B.JSInt_methods._shrOtherPositive$1(t2, 2)); t2 = height + 1; _this._processPass$8(input, image, 0, 2, 2, 4, B.JSInt_methods._shrOtherPositive$1(t1, 1), B.JSInt_methods._shrOtherPositive$1(t2, 2)); _this._processPass$8(input, image, 1, 0, 2, 2, B.JSInt_methods._shrOtherPositive$1(width, 1), B.JSInt_methods._shrOtherPositive$1(t2, 1)); _this._processPass$8(input, image, 0, 1, 1, 2, width, B.JSInt_methods._shrOtherPositive$1(height, 1)); } else _this._png_decoder$_process$2(input, image); t1 = _this._png_decoder$_info; t1.width = origW; t1.height = origH; t2 = t1.iCCPData; if (t2 != null) image.iccProfile = new A.ICCProfileData(t1.iCCPName, B.ICCPCompression_1, t2); t1 = t1.textData; if (t1._length !== 0) image.addTextData$1(t1); return image; }, decodeImage$1(bytes) { if (this.startDecode$1(type$.List_int._as(bytes)) == null) return null; return this.decodeFrame$1(0); }, _processPass$8(input, image, xOffset, yOffset, xStep, yStep, passWidth, passHeight) { var channels, pixelDepth, bpp, rowBytes, line, inData, pixel, t3, t4, t5, blockWidth, t6, dstY, srcY, ri, t7, t8, bytes, row, rowInput, dstX, srcX, c, i, j, t9, t10, _this = this, t1 = _this._png_decoder$_info, t2 = t1.colorType; if (t2 === 4) channels = 2; else if (t2 === 2) channels = 3; else { t2 = t2 === 6 ? 4 : 1; channels = t2; } t1 = t1.bits; t1.toString; pixelDepth = channels * t1; bpp = B.JSInt_methods._shrOtherPositive$1(pixelDepth + 7, 3); rowBytes = B.JSInt_methods._shrOtherPositive$1(pixelDepth * passWidth + 7, 3); line = A.List_List$filled(rowBytes, 0, false, type$.int); inData = A._setArrayType([line, line], type$.JSArray_List_int); pixel = A._setArrayType([0, 0, 0, 0], type$.JSArray_int); for (t1 = image.data, t2 = image.width, t3 = t1.length, t4 = xStep > 1, t5 = image.height, blockWidth = xStep - xOffset, t6 = blockWidth <= 1, dstY = yOffset, srcY = 0, ri = 0; srcY < passHeight; ++srcY, dstY += yStep, ++_this._progressY) { t7 = input.buffer; t8 = input.offset++; if (!(t8 >= 0 && t8 < t7.length)) return A.ioore(t7, t8); t8 = t7[t8]; bytes = input.subset$1(rowBytes); input.offset = input.offset + (bytes.end - bytes.offset); B.JSArray_methods.$indexSet(inData, ri, bytes.toUint8List$0()); if (!(ri >= 0 && ri < 2)) return A.ioore(inData, ri); row = inData[ri]; ri = 1 - ri; _this._unfilter$4(t8, bpp, row, inData[ri]); _this._png_decoder$_bitBufferLen = _this._png_decoder$_bitBuffer = 0; t7 = row.length; rowInput = new A.InputBuffer(row, 0, t7, 0, true); for (t7 = dstY * t2, dstX = xOffset, srcX = 0; srcX < passWidth; ++srcX, dstX += xStep) { _this._readPixel$2(rowInput, pixel); c = _this._getColor$1(pixel); t8 = t7 + dstX; if (!(t8 >= 0 && t8 < t3)) return A.ioore(t1, t8); t1[t8] = c; if (!t6 || t4) for (i = 0; i < xStep; ++i) for (j = 0; j < blockWidth; ++j) { t8 = dstX + j; t9 = dstY + j; if (t8 < t2) t10 = t9 < t5; else t10 = false; if (t10) { t8 = t9 * t2 + t8; if (!(t8 >= 0 && t8 < t3)) return A.ioore(t1, t8); t1[t8] = c; } } } } }, _png_decoder$_process$2(input, image) { var channels, pixelDepth, w, h, rowBytes, bpp, line, inData, pixel, y, pi, ri, t3, t4, bytes, ri0, rowInput, x, pi0, _this = this, t1 = _this._png_decoder$_info, t2 = t1.colorType; if (t2 === 4) channels = 2; else if (t2 === 2) channels = 3; else { t2 = t2 === 6 ? 4 : 1; channels = t2; } t2 = t1.bits; t2.toString; pixelDepth = channels * t2; w = t1.width; h = t1.height; rowBytes = B.JSInt_methods._shrOtherPositive$1(w * pixelDepth + 7, 3); bpp = B.JSInt_methods._shrOtherPositive$1(pixelDepth + 7, 3); line = A.List_List$filled(rowBytes, 0, false, type$.int); inData = A._setArrayType([line, line], type$.JSArray_List_int); pixel = A._setArrayType([0, 0, 0, 0], type$.JSArray_int); for (t1 = image.data, t2 = t1.length, y = 0, pi = 0, ri = 0; y < h; ++y, ri = ri0) { t3 = input.buffer; t4 = input.offset++; if (!(t4 >= 0 && t4 < t3.length)) return A.ioore(t3, t4); t4 = t3[t4]; bytes = input.subset$1(rowBytes); input.offset = input.offset + (bytes.end - bytes.offset); B.JSArray_methods.$indexSet(inData, ri, bytes.toUint8List$0()); if (!(ri >= 0 && ri < 2)) return A.ioore(inData, ri); ri0 = 1 - ri; _this._unfilter$4(t4, bpp, inData[ri], inData[ri0]); _this._png_decoder$_bitBufferLen = _this._png_decoder$_bitBuffer = 0; t4 = inData[ri]; t3 = t4.length; rowInput = new A.InputBuffer(t4, 0, t3, 0, true); for (x = 0; x < w; ++x, pi = pi0) { _this._readPixel$2(rowInput, pixel); pi0 = pi + 1; t3 = _this._getColor$1(pixel); if (!(pi >= 0 && pi < t2)) return A.ioore(t1, pi); t1[pi] = t3; } } }, _unfilter$4(filterType, bpp, row, prevRow) { var rowBytes, x, t2, t3, t4, a, b, c, p, pa, pb, pc, paeth, t1 = type$.List_int; t1._as(row); t1._as(prevRow); rowBytes = row.length; switch (filterType) { case 0: break; case 1: for (t1 = J.getInterceptor$ax(row), x = bpp; x < rowBytes; ++x) { t2 = row.length; if (!(x < t2)) return A.ioore(row, x); t3 = row[x]; t4 = x - bpp; if (!(t4 >= 0 && t4 < t2)) return A.ioore(row, t4); t4 = row[t4]; if (typeof t3 !== "number") return t3.$add(); if (typeof t4 !== "number") return A.iae(t4); t1.$indexSet(row, x, t3 + t4 & 255); } break; case 2: for (t1 = J.getInterceptor$ax(row), x = 0; x < rowBytes; ++x) { if (!(x < row.length)) return A.ioore(row, x); t2 = row[x]; if (!(x < prevRow.length)) return A.ioore(prevRow, x); t3 = prevRow[x]; if (typeof t2 !== "number") return t2.$add(); if (typeof t3 !== "number") return A.iae(t3); t1.$indexSet(row, x, t2 + t3 & 255); } break; case 3: for (t1 = J.getInterceptor$ax(row), x = 0; x < rowBytes; ++x) { if (x < bpp) a = 0; else { t2 = x - bpp; if (!(t2 >= 0 && t2 < row.length)) return A.ioore(row, t2); a = row[t2]; } if (!(x < prevRow.length)) return A.ioore(prevRow, x); b = prevRow[x]; if (!(x < row.length)) return A.ioore(row, x); t2 = row[x]; t3 = B.JSInt_methods._shrOtherPositive$1(a + b, 1); if (typeof t2 !== "number") return t2.$add(); t1.$indexSet(row, x, t2 + t3 & 255); } break; case 4: for (t1 = J.getInterceptor$ax(row), x = 0; x < rowBytes; ++x) { t2 = x < bpp; if (t2) a = 0; else { t3 = x - bpp; if (!(t3 >= 0 && t3 < row.length)) return A.ioore(row, t3); a = row[t3]; } t3 = prevRow.length; if (!(x < t3)) return A.ioore(prevRow, x); b = prevRow[x]; if (t2) c = 0; else { t2 = x - bpp; if (!(t2 >= 0 && t2 < t3)) return A.ioore(prevRow, t2); c = prevRow[t2]; } p = a + b - c; pa = Math.abs(p - a); pb = Math.abs(p - b); pc = Math.abs(p - c); if (pa <= pb && pa <= pc) paeth = a; else paeth = pb <= pc ? b : c; if (!(x < row.length)) return A.ioore(row, x); t2 = row[x]; if (typeof t2 !== "number") return t2.$add(); t1.$indexSet(row, x, t2 + paeth & 255); } break; default: throw A.wrapException(A.ImageException$("Invalid filter value: " + filterType)); } }, _png_decoder$_readBits$2(input, numBits) { var t1, t2, t3, t4, mask, _this = this; if (numBits === 0) return 0; if (numBits === 8) return input.readByte$0(); if (numBits === 16) return input.readUint16$0(); for (t1 = input.end; t2 = _this._png_decoder$_bitBufferLen, t2 < numBits;) { t3 = input.offset; if (t3 >= t1) throw A.wrapException(A.ImageException$("Invalid PNG data.")); t4 = input.buffer; input.offset = t3 + 1; if (!(t3 >= 0 && t3 < t4.length)) return A.ioore(t4, t3); _this._png_decoder$_bitBuffer = B.JSInt_methods.$shl(t4[t3], t2); _this._png_decoder$_bitBufferLen = t2 + 8; } if (numBits === 1) mask = 1; else if (numBits === 2) mask = 3; else { if (numBits === 4) t1 = 15; else t1 = 0; mask = t1; } t1 = t2 - numBits; t2 = B.JSInt_methods._shrReceiverPositive$1(_this._png_decoder$_bitBuffer, t1); _this._png_decoder$_bitBufferLen = t1; return (t2 & mask) >>> 0; }, _readPixel$2(input, pixel) { var t1, t2, _this = this; type$.List_int._as(pixel); t1 = _this._png_decoder$_info; t2 = t1.colorType; switch (t2) { case 0: t1 = t1.bits; t1.toString; B.JSArray_methods.$indexSet(pixel, 0, _this._png_decoder$_readBits$2(input, t1)); return; case 2: t1 = t1.bits; t1.toString; B.JSArray_methods.$indexSet(pixel, 0, _this._png_decoder$_readBits$2(input, t1)); t1 = _this._png_decoder$_info.bits; t1.toString; B.JSArray_methods.$indexSet(pixel, 1, _this._png_decoder$_readBits$2(input, t1)); t1 = _this._png_decoder$_info.bits; t1.toString; B.JSArray_methods.$indexSet(pixel, 2, _this._png_decoder$_readBits$2(input, t1)); return; case 3: t1 = t1.bits; t1.toString; B.JSArray_methods.$indexSet(pixel, 0, _this._png_decoder$_readBits$2(input, t1)); return; case 4: t1 = t1.bits; t1.toString; B.JSArray_methods.$indexSet(pixel, 0, _this._png_decoder$_readBits$2(input, t1)); t1 = _this._png_decoder$_info.bits; t1.toString; B.JSArray_methods.$indexSet(pixel, 1, _this._png_decoder$_readBits$2(input, t1)); return; case 6: t1 = t1.bits; t1.toString; B.JSArray_methods.$indexSet(pixel, 0, _this._png_decoder$_readBits$2(input, t1)); t1 = _this._png_decoder$_info.bits; t1.toString; B.JSArray_methods.$indexSet(pixel, 1, _this._png_decoder$_readBits$2(input, t1)); t1 = _this._png_decoder$_info.bits; t1.toString; B.JSArray_methods.$indexSet(pixel, 2, _this._png_decoder$_readBits$2(input, t1)); t1 = _this._png_decoder$_info.bits; t1.toString; B.JSArray_methods.$indexSet(pixel, 3, _this._png_decoder$_readBits$2(input, t1)); return; } throw A.wrapException(A.ImageException$("Invalid color type: " + A.S(t2) + ".")); }, _getColor$1(raw) { var t1, t2, g, t3, r, b, t4, t5, t6, t7, p, a, _this = this; type$.List_int._as(raw); t1 = _this._png_decoder$_info; t2 = t1.colorType; switch (t2) { case 0: g = A._Cell$named("g"); t1 = _this._png_decoder$_info; switch (t1.bits) { case 1: g._value = raw[0] === 0 ? 0 : 255; break; case 2: g._value = raw[0] * 85; break; case 4: g._value = raw[0] << 4 >>> 0; break; case 8: g._value = raw[0]; break; case 16: g._value = B.JSInt_methods._shrOtherPositive$1(raw[0], 8); break; } t1 = t1.colorLut; t1.toString; g._value = B.JSArray_methods.$index(t1, g._readLocal$0()); t1 = _this._png_decoder$_info.transparency; if (t1 != null) { t2 = t1.length; if (0 >= t2) return A.ioore(t1, 0); t3 = t1[0]; if (1 >= t2) return A.ioore(t1, 1); t1 = t1[1]; if (raw[0] === ((t3 & 255) << 24 | t1 & 255) >>> 0) return A.getColor(g._readLocal$0(), g._readLocal$0(), g._readLocal$0(), 0); } return A.getColor(g._readLocal$0(), g._readLocal$0(), g._readLocal$0(), 255); case 2: r = A._Cell$named("r"); g = A._Cell$named("g"); b = A._Cell$named("b"); t1 = _this._png_decoder$_info; switch (t1.bits) { case 1: r._value = raw[0] === 0 ? 0 : 255; g._value = raw[1] === 0 ? 0 : 255; b._value = raw[2] === 0 ? 0 : 255; break; case 2: r._value = raw[0] * 85; g._value = raw[1] * 85; b._value = raw[2] * 85; break; case 4: r._value = raw[0] << 4 >>> 0; g._value = raw[1] << 4 >>> 0; b._value = raw[2] << 4 >>> 0; break; case 8: r._value = raw[0]; g._value = raw[1]; b._value = raw[2]; break; case 16: r._value = B.JSInt_methods._shrOtherPositive$1(raw[0], 8); g._value = B.JSInt_methods._shrOtherPositive$1(raw[1], 8); b._value = B.JSInt_methods._shrOtherPositive$1(raw[2], 8); break; } t1 = t1.colorLut; t1.toString; r._value = B.JSArray_methods.$index(t1, r._readLocal$0()); t1 = _this._png_decoder$_info.colorLut; t1.toString; g._value = B.JSArray_methods.$index(t1, g._readLocal$0()); t1 = _this._png_decoder$_info.colorLut; t1.toString; b._value = B.JSArray_methods.$index(t1, b._readLocal$0()); t1 = _this._png_decoder$_info.transparency; if (t1 != null) { t2 = t1.length; if (0 >= t2) return A.ioore(t1, 0); t3 = t1[0]; if (1 >= t2) return A.ioore(t1, 1); t4 = t1[1]; if (2 >= t2) return A.ioore(t1, 2); t5 = t1[2]; if (3 >= t2) return A.ioore(t1, 3); t6 = t1[3]; if (4 >= t2) return A.ioore(t1, 4); t7 = t1[4]; if (5 >= t2) return A.ioore(t1, 5); t1 = t1[5]; if (raw[0] === ((t3 & 255) << 8 | t4 & 255) && raw[1] === ((t5 & 255) << 8 | t6 & 255) && raw[2] === ((t7 & 255) << 8 | t1 & 255)) return A.getColor(r._readLocal$0(), g._readLocal$0(), b._readLocal$0(), 0); } return A.getColor(r._readLocal$0(), g._readLocal$0(), b._readLocal$0(), 255); case 3: t2 = raw[0]; p = t2 * 3; t3 = t1.transparency; if (t3 != null && t2 < t3.length) { if (!(t2 >= 0 && t2 < t3.length)) return A.ioore(t3, t2); a = t3[t2]; } else a = 255; t1 = t1.palette; t2 = t1.length; if (p >= t2) return A.getColor(255, 255, 255, a); if (!(p >= 0)) return A.ioore(t1, p); r = t1[p]; t3 = p + 1; if (!(t3 < t2)) return A.ioore(t1, t3); g = t1[t3]; t3 = p + 2; if (!(t3 < t2)) return A.ioore(t1, t3); return A.getColor(r, g, t1[t3], a); case 4: g = A._Cell$named("g"); a = A._Cell$named("a"); t1 = _this._png_decoder$_info; switch (t1.bits) { case 1: g._value = raw[0] === 0 ? 0 : 255; a._value = raw[1] === 0 ? 0 : 255; break; case 2: g._value = raw[0] * 85; a._value = raw[1] * 85; break; case 4: g._value = raw[0] << 4 >>> 0; a._value = raw[1] << 4 >>> 0; break; case 8: g._value = raw[0]; a._value = raw[1]; break; case 16: g._value = B.JSInt_methods._shrOtherPositive$1(raw[0], 8); a._value = B.JSInt_methods._shrOtherPositive$1(raw[1], 8); break; } t1 = t1.colorLut; t1.toString; g._value = B.JSArray_methods.$index(t1, g._readLocal$0()); return A.getColor(g._readLocal$0(), g._readLocal$0(), g._readLocal$0(), a._readLocal$0()); case 6: r = A._Cell$named("r"); g = A._Cell$named("g"); b = A._Cell$named("b"); a = A._Cell$named("a"); t1 = _this._png_decoder$_info; switch (t1.bits) { case 1: r._value = raw[0] === 0 ? 0 : 255; g._value = raw[1] === 0 ? 0 : 255; b._value = raw[2] === 0 ? 0 : 255; a._value = raw[3] === 0 ? 0 : 255; break; case 2: r._value = raw[0] * 85; g._value = raw[1] * 85; b._value = raw[2] * 85; a._value = raw[3] * 85; break; case 4: r._value = raw[0] << 4 >>> 0; g._value = raw[1] << 4 >>> 0; b._value = raw[2] << 4 >>> 0; a._value = raw[3] << 4 >>> 0; break; case 8: r._value = raw[0]; g._value = raw[1]; b._value = raw[2]; a._value = raw[3]; break; case 16: r._value = B.JSInt_methods._shrOtherPositive$1(raw[0], 8); g._value = B.JSInt_methods._shrOtherPositive$1(raw[1], 8); b._value = B.JSInt_methods._shrOtherPositive$1(raw[2], 8); a._value = B.JSInt_methods._shrOtherPositive$1(raw[3], 8); break; } t1 = t1.colorLut; t1.toString; r._value = B.JSArray_methods.$index(t1, r._readLocal$0()); t1 = _this._png_decoder$_info.colorLut; t1.toString; g._value = B.JSArray_methods.$index(t1, g._readLocal$0()); t1 = _this._png_decoder$_info.colorLut; t1.toString; b._value = B.JSArray_methods.$index(t1, b._readLocal$0()); return A.getColor(r._readLocal$0(), g._readLocal$0(), b._readLocal$0(), a._readLocal$0()); } throw A.wrapException(A.ImageException$("Invalid color type: " + A.S(t2) + ".")); } }; A.PngDecoder_decodeFrame_closure.prototype = { call$1(i) { return i; }, $signature: 18 }; A.PngEncoder.prototype = { addFrame$1(image) { var t1, t2, t3, chunk, filteredImage, compressed, t4, t5, fdat, _this = this; _this.__PngEncoder_yOffset = _this.__PngEncoder_xOffset = image.xOffset; _this.delay = image.duration; _this.__PngEncoder_disposeMethod = image.disposeMethod; _this.__PngEncoder_blendMethod = image.blendMethod; if (_this.output == null) { _this.output = A.OutputBuffer$(true, 8192); _this.channels = image.channels; t1 = image.width; _this.__PngEncoder__width = t1; _this.__PngEncoder__height = image.height; t1 = A._lateReadCheck(t1, "_width"); t2 = A._lateReadCheck(_this.__PngEncoder__height, "_height"); t3 = _this.output; t3.toString; t3.writeBytes$1(A._setArrayType([137, 80, 78, 71, 13, 10, 26, 10], type$.JSArray_int)); chunk = A.OutputBuffer$(true, 8192); chunk.writeUint32$1(t1); chunk.writeUint32$1(t2); chunk.writeByte$1(8); chunk.writeByte$1(_this.channels === B.Channels_0 ? 2 : 6); chunk.writeByte$1(0); chunk.writeByte$1(0); chunk.writeByte$1(0); t1 = _this.output; t1.toString; _this._writeChunk$3(t1, "IHDR", A.NativeUint8List_NativeUint8List$view(chunk._buffer.buffer, 0, chunk.length)); _this._writeICCPChunk$2(_this.output, image.iccProfile); } t1 = image.height; t2 = image.channels === B.Channels_1 ? 4 : 3; filteredImage = new Uint8Array(image.width * t1 * t2 + t1); _this._filter$2(0, image, filteredImage); compressed = B.C_ZLibEncoder.encode$2$level(filteredImage, _this.level); t1 = image.textData; if (t1 != null) for (t1 = A.LinkedHashMapKeyIterator$(t1, t1._modifications, A._instanceType(t1)._precomputed1), t2 = type$.List_int; t1.moveNext$0();) { t3 = t1.__js_helper$_current; t4 = image.textData.$index(0, t3); t4.toString; A._asString(t4); chunk = new A.OutputBuffer(true, new Uint8Array(8192)); chunk.writeBytes$1(B.C_Latin1Encoder.convert$1(t3)); chunk.writeByte$1(0); chunk.writeBytes$1(B.C_Latin1Encoder.convert$1(t4)); t3 = _this.output; t3.toString; t4 = chunk._buffer.buffer; t5 = chunk.length; t4 = new Uint8Array(t4, 0, t5); t2._as(t4); t3.writeUint32$1(t4.length); t3.writeBytes$1(new A.CodeUnits("tEXt")); t3.writeBytes$1(t4); t3.writeUint32$1(A.getCrc32(t4, A.getCrc32(new A.CodeUnits("tEXt"), 0))); } if (_this.sequenceNumber <= 1) { t1 = _this.output; t1.toString; _this._writeChunk$3(t1, "IDAT", compressed); } else { fdat = A.OutputBuffer$(true, 8192); fdat.writeUint32$1(_this.sequenceNumber); fdat.writeBytes$1(compressed); t1 = _this.output; t1.toString; _this._writeChunk$3(t1, "fdAT", A.NativeUint8List_NativeUint8List$view(fdat._buffer.buffer, 0, fdat.length)); ++_this.sequenceNumber; } }, finish$0(_) { var bytes, _this = this, t1 = _this.output; if (t1 == null) return null; _this._writeChunk$3(t1, "IEND", A._setArrayType([], type$.JSArray_int)); _this.sequenceNumber = 0; t1 = _this.output; bytes = A.NativeUint8List_NativeUint8List$view(t1._buffer.buffer, 0, t1.length); _this.output = null; return bytes; }, encodeImage$1(image) { var t1; this.isAnimated = false; this.addFrame$1(image); t1 = this.finish$0(0); t1.toString; return t1; }, _writeICCPChunk$2(out, iccp) { var chunk, t1; if (iccp == null) return; chunk = A.OutputBuffer$(true, 8192); chunk.writeBytes$1(new A.CodeUnits(iccp.name)); chunk.writeByte$1(0); chunk.writeByte$1(0); chunk.writeBytes$1(iccp.compressed$0()); t1 = this.output; t1.toString; this._writeChunk$3(t1, "iCCP", A.NativeUint8List_NativeUint8List$view(chunk._buffer.buffer, 0, chunk.length)); }, _writeChunk$3(out, type, chunk) { type$.List_int._as(chunk); out.writeUint32$1(chunk.length); out.writeBytes$1(new A.CodeUnits(type)); out.writeBytes$1(chunk); out.writeUint32$1(A.getCrc32(chunk, A.getCrc32(new A.CodeUnits(type), 0))); }, _filter$2(_, image, out) { var t1, oi, y; type$.List_int._as(out); for (t1 = image.height, oi = 0, y = 0; y < t1; ++y) switch (4) { case 4: oi = this._filterPaeth$4(image, oi, y, out); break; } }, _paethPredictor$3(a, b, c) { var p = a + b - c, pa = p > a ? p - a : a - p, pb = p > b ? p - b : b - p, pc = p > c ? p - c : c - p; if (pa <= pb && pa <= pc) return a; else if (pb <= pc) return b; return c; }, _filterPaeth$4(image, oi, row, out) { var oi0, t1, t2, t3, t4, t5, t6, t7, t8, t9, x, t10, ar, t11, ag, ab, br, bg, bb, cr, cg, cb, t12, pr, pg, pb, aa, ba, ca, pa, _this = this; type$.List_int._as(out); oi0 = oi + 1; t1 = out.length; if (!(oi < t1)) return A.ioore(out, oi); out[oi] = 4; for (t2 = image.width, t3 = image.channels === B.Channels_1, t4 = image.data, t5 = row * t2, t6 = t4.length, t7 = (row - 1) * t2, t8 = row === 0, t9 = !t8, oi = oi0, x = 0; x < t2; ++x) { t10 = x === 0; if (t10) ar = 0; else { t11 = t5 + (x - 1); if (!(t11 >= 0 && t11 < t6)) return A.ioore(t4, t11); ar = t4[t11] & 255; } if (t10) ag = 0; else { t11 = t5 + (x - 1); if (!(t11 >= 0 && t11 < t6)) return A.ioore(t4, t11); ag = t4[t11] >>> 8 & 255; } if (t10) ab = 0; else { t11 = t5 + (x - 1); if (!(t11 >= 0 && t11 < t6)) return A.ioore(t4, t11); ab = t4[t11] >>> 16 & 255; } if (t8) br = 0; else { t11 = t7 + x; if (!(t11 >= 0 && t11 < t6)) return A.ioore(t4, t11); br = t4[t11] & 255; } if (t8) bg = 0; else { t11 = t7 + x; if (!(t11 >= 0 && t11 < t6)) return A.ioore(t4, t11); bg = t4[t11] >>> 8 & 255; } if (t8) bb = 0; else { t11 = t7 + x; if (!(t11 >= 0 && t11 < t6)) return A.ioore(t4, t11); bb = t4[t11] >>> 16 & 255; } if (!t9 || t10) cr = 0; else { t11 = t7 + (x - 1); if (!(t11 >= 0 && t11 < t6)) return A.ioore(t4, t11); cr = t4[t11] & 255; } if (!t9 || t10) cg = 0; else { t11 = t7 + (x - 1); if (!(t11 >= 0 && t11 < t6)) return A.ioore(t4, t11); cg = t4[t11] >>> 8 & 255; } if (!t9 || t10) cb = 0; else { t11 = t7 + (x - 1); if (!(t11 >= 0 && t11 < t6)) return A.ioore(t4, t11); cb = t4[t11] >>> 16 & 255; } t11 = t5 + x; if (!(t11 >= 0 && t11 < t6)) return A.ioore(t4, t11); t12 = t4[t11]; pr = _this._paethPredictor$3(ar, br, cr); pg = _this._paethPredictor$3(ag, bg, cg); pb = _this._paethPredictor$3(ab, bb, cb); oi0 = oi + 1; if (!(oi < t1)) return A.ioore(out, oi); out[oi] = (t12 & 255) - pr & 255; oi = oi0 + 1; if (!(oi0 < t1)) return A.ioore(out, oi0); out[oi0] = (t12 >>> 8 & 255) - pg & 255; oi0 = oi + 1; if (!(oi < t1)) return A.ioore(out, oi); out[oi] = (t12 >>> 16 & 255) - pb & 255; if (t3) { if (t10) aa = 0; else { t12 = t5 + (x - 1); if (!(t12 >= 0 && t12 < t6)) return A.ioore(t4, t12); aa = t4[t12] >>> 24 & 255; } if (t8) ba = 0; else { t12 = t7 + x; if (!(t12 >= 0 && t12 < t6)) return A.ioore(t4, t12); ba = t4[t12] >>> 24 & 255; } if (!t9 || t10) ca = 0; else { t10 = t7 + (x - 1); if (!(t10 >= 0 && t10 < t6)) return A.ioore(t4, t10); ca = t4[t10] >>> 24 & 255; } t10 = t4[t11]; pa = _this._paethPredictor$3(aa, ba, ca); oi = oi0 + 1; if (!(oi0 < t1)) return A.ioore(out, oi0); out[oi0] = (t10 >>> 24 & 255) - pa & 255; } else oi = oi0; } return oi; } }; A.PsdBevelEffect.prototype = { set$highlightColor(highlightColor) { type$.nullable_List_int._as(highlightColor); }, set$shadowColor(_, shadowColor) { type$.nullable_List_int._as(shadowColor); }, set$realHighlightColor(realHighlightColor) { type$.nullable_List_int._as(realHighlightColor); }, set$realShadowColor(realShadowColor) { type$.nullable_List_int._as(realShadowColor); } }; A.PsdDropShadowEffect.prototype = { set$color(_, color) { type$.nullable_List_int._as(color); }, set$nativeColor(nativeColor) { type$.nullable_List_int._as(nativeColor); } }; A.PsdEffect.prototype = {}; A.PsdInnerGlowEffect.prototype = { set$color(_, color) { type$.nullable_List_int._as(color); }, set$nativeColor(nativeColor) { type$.nullable_List_int._as(nativeColor); } }; A.PsdInnerShadowEffect.prototype = { set$color(_, color) { type$.nullable_List_int._as(color); }, set$nativeColor(nativeColor) { type$.nullable_List_int._as(nativeColor); } }; A.PsdOuterGlowEffect.prototype = { set$color(_, color) { type$.nullable_List_int._as(color); }, set$nativeColor(nativeColor) { type$.nullable_List_int._as(nativeColor); } }; A.PsdSolidFillEffect.prototype = { set$color(_, color) { type$.nullable_List_int._as(color); }, set$nativeColor(nativeColor) { type$.nullable_List_int._as(nativeColor); } }; A.PsdLayerAdditionalData.prototype = {}; A.PsdLayerSectionDivider.prototype = {}; A.PsdBlendingRanges.prototype = { PsdBlendingRanges$1(input) { var numChannels, i, t1, t2, _this = this; input.readUint16$0(); input.readUint16$0(); input.readUint16$0(); input.readUint16$0(); numChannels = B.JSInt_methods._tdivFast$1(input.end - input.offset, 8); if (numChannels > 0) { _this.__PsdBlendingRanges_blackSrc = new Uint16Array(numChannels); _this.__PsdBlendingRanges_whiteSrc = new Uint16Array(numChannels); _this.__PsdBlendingRanges_blackDst = new Uint16Array(numChannels); _this.__PsdBlendingRanges_whiteDst = new Uint16Array(numChannels); for (i = 0; i < numChannels; ++i) { t1 = A._lateReadCheck(_this.__PsdBlendingRanges_blackSrc, "blackSrc"); t2 = input.readUint16$0(); if (!(i < t1.length)) return A.ioore(t1, i); t1[i] = t2; t2 = A._lateReadCheck(_this.__PsdBlendingRanges_whiteSrc, "whiteSrc"); t1 = input.readUint16$0(); if (!(i < t2.length)) return A.ioore(t2, i); t2[i] = t1; t1 = A._lateReadCheck(_this.__PsdBlendingRanges_blackDst, "blackDst"); t2 = input.readUint16$0(); if (!(i < t1.length)) return A.ioore(t1, i); t1[i] = t2; t2 = A._lateReadCheck(_this.__PsdBlendingRanges_whiteDst, "whiteDst"); t1 = input.readUint16$0(); if (!(i < t2.length)) return A.ioore(t2, i); t2[i] = t1; } } } }; A.PsdChannel.prototype = { readPlane$7(input, width, height, bitDepth, compression, lineLengths, planeNum) { if (compression == null) compression = input.readUint16$0(); switch (compression) { case 0: bitDepth.toString; this._readPlaneUncompressed$4(input, width, height, bitDepth); break; case 1: if (lineLengths == null) lineLengths = this._readLineLengths$2(input, height); bitDepth.toString; this._readPlaneRleCompressed$6(input, width, height, bitDepth, lineLengths, planeNum); break; default: throw A.wrapException(A.ImageException$("Unsupported compression: " + compression)); } }, readPlane$4(input, width, height, bitDepth) { return this.readPlane$7(input, width, height, bitDepth, null, null, 0); }, _readLineLengths$2(input, height) { var i, t1, lineLengths = new Uint16Array(height); for (i = 0; i < height; ++i) { t1 = input.readUint16$0(); if (!(i < height)) return A.ioore(lineLengths, i); lineLengths[i] = t1; } return lineLengths; }, _readPlaneUncompressed$4(input, width, height, bitDepth) { var t1, len = width * height; if (bitDepth === 16) len *= 2; if (len > input.end - input.offset) { t1 = new Uint8Array(len); this.__PsdChannel_data = t1; B.NativeUint8List_methods.fillRange$3(A._lateReadCheck(t1, "data"), 0, len, 255); return; } this.__PsdChannel_data = input.readBytes$1(len).toUint8List$0(); }, _readPlaneRleCompressed$6(input, width, height, bitDepth, lineLengths, planeNum) { var t1, lineIndex, t2, pos, i, lineIndex0, bytes, _this = this, _s4_ = "data", len = width * height; if (bitDepth === 16) len *= 2; t1 = new Uint8Array(len); _this.__PsdChannel_data = t1; lineIndex = planeNum * height; t2 = lineLengths.length; if (lineIndex >= t2) { B.NativeUint8List_methods.fillRange$3(A._lateReadCheck(t1, _s4_), 0, A._lateReadCheck(_this.__PsdChannel_data, _s4_).length, 255); return; } for (pos = 0, i = 0; i < height; ++i, lineIndex = lineIndex0) { lineIndex0 = lineIndex + 1; if (!(lineIndex >= 0 && lineIndex < t2)) return A.ioore(lineLengths, lineIndex); bytes = input.subset$1(lineLengths[lineIndex]); input.offset = input.offset + (bytes.end - bytes.offset); _this._decodeRLE$3(bytes, A._lateReadCheck(_this.__PsdChannel_data, _s4_), pos); pos += width; } }, _decodeRLE$3(src, dst, dstIndex) { var t1, t2, t3, t4, t5, t6, n, i, dstIndex0; for (t1 = src.end, t2 = dst.length; t3 = src.offset, t3 < t1;) { t4 = src.buffer; t5 = src.offset = t3 + 1; t6 = t4.length; if (!(t3 >= 0 && t3 < t6)) return A.ioore(t4, t3); t3 = t4[t3]; $.$get$__uint8()[0] = t3; t3 = $.$get$__uint8ToInt8(); if (0 >= t3.length) return A.ioore(t3, 0); n = t3[0]; if (n < 0) { n = 1 - n; src.offset = t5 + 1; if (!(t5 >= 0 && t5 < t6)) return A.ioore(t4, t5); t3 = t4[t5]; for (i = 0; i < n; ++i, dstIndex = dstIndex0) { dstIndex0 = dstIndex + 1; if (!(dstIndex >= 0 && dstIndex < t2)) return A.ioore(dst, dstIndex); dst[dstIndex] = t3; } } else { ++n; for (t3 = t5, i = 0; i < n; ++i, t3 = t5, dstIndex = dstIndex0) { dstIndex0 = dstIndex + 1; t5 = t3 + 1; src.offset = t5; if (!(t3 >= 0 && t3 < t4.length)) return A.ioore(t4, t3); t3 = t4[t3]; if (!(dstIndex >= 0 && dstIndex < t2)) return A.ioore(dst, dstIndex); dst[dstIndex] = t3; } } } } }; A.PsdImage.prototype = { PsdImage$1(bytes) { var len, t1, t2, _this = this, _s6_ = "_input"; _this.__PsdImage__input = A.InputBuffer$(bytes, true, null, 0); _this._psd_image$_readHeader$0(); if (_this.signature !== 943870035) return; len = A._lateReadCheck(_this.__PsdImage__input, _s6_).readUint32$0(); A._lateReadCheck(_this.__PsdImage__input, _s6_).readBytes$1(len); len = A._lateReadCheck(_this.__PsdImage__input, _s6_).readUint32$0(); _this.__PsdImage__imageResourceData = A._lateReadCheck(_this.__PsdImage__input, _s6_).readBytes$1(len); len = A._lateReadCheck(_this.__PsdImage__input, _s6_).readUint32$0(); _this.__PsdImage__layerAndMaskData = A._lateReadCheck(_this.__PsdImage__input, _s6_).readBytes$1(len); t1 = A._lateReadCheck(_this.__PsdImage__input, _s6_); t1.toString; t2 = A._lateReadCheck(_this.__PsdImage__input, _s6_); _this.__PsdImage__imageData = t1.readBytes$1(t2.end - t2.offset); }, decode$0(_) { var _this = this; if (_this.signature !== 943870035 || A._lateReadCheck(_this.__PsdImage__input, "_input") == null) return false; _this._readImageResources$0(); _this._readLayerAndMaskData$0(); _this._readMergeImageData$0(); _this.__PsdImage__imageData = _this.__PsdImage__layerAndMaskData = _this.__PsdImage__imageResourceData = _this.__PsdImage__input = null; return true; }, decodeImage$0() { if (!this.decode$0(0)) return null; return this.renderImage$0(); }, renderImage$0() { var pixels, li, layer, opacity, blendMode, srcP, t2, t3, sy, y, si, t4, t5, di, sx, x, si0, br, bg, bb, ba, ar, ag, ab, aa, da, a, b, g, r, di0, di1, _this = this, t1 = _this.mergedImage; if (t1 != null) return t1; t1 = A.Image$(_this.width, _this.height, B.Channels_1, null, null); _this.mergedImage = t1; t1 = t1.data; B.NativeUint32List_methods.fillRange$3(t1, 0, t1.length, 0); pixels = _this.mergedImage.getBytes$0(); for (t1 = pixels.length, li = 0; li < J.get$length$asx(A._lateReadCheck(_this.__PsdImage_layers, "layers")); ++li) { layer = J.$index$asx(A._lateReadCheck(_this.__PsdImage_layers, "layers"), li); if ((A._lateReadCheck(layer.__PsdLayer_flags, "flags") & 2) !== 0) continue; opacity = A._lateReadCheck(layer.__PsdLayer_opacity, "opacity") / 255; blendMode = layer.blendMode; srcP = A._lateReadCheck(layer.__PsdLayer_layerImage, "layerImage").getBytes$0(); t2 = layer.top; t2.toString; t3 = srcP.length; sy = t2; y = 0; si = 0; for (; y < A._lateReadCheck(layer.__PsdLayer_height, "height"); ++y, ++sy) { t2 = layer.top; t2.toString; t4 = _this.width; if (typeof t4 !== "number") return A.iae(t4); t5 = layer.left; t5.toString; di = (t2 + y) * t4 * 4 + t5 * 4; for (t2 = sy >= 0, sx = t5, x = 0; x < A._lateReadCheck(layer.__PsdLayer_width, "width"); ++x, ++sx) { si0 = si + 1; if (!(si >= 0 && si < t3)) return A.ioore(srcP, si); br = srcP[si]; si = si0 + 1; if (!(si0 >= 0 && si0 < t3)) return A.ioore(srcP, si0); bg = srcP[si0]; si0 = si + 1; if (!(si >= 0 && si < t3)) return A.ioore(srcP, si); bb = srcP[si]; si = si0 + 1; if (!(si0 >= 0 && si0 < t3)) return A.ioore(srcP, si0); ba = srcP[si0]; if (sx >= 0) { t4 = _this.width; if (typeof t4 !== "number") return A.iae(t4); if (sx < t4) if (t2) { t4 = _this.height; if (typeof t4 !== "number") return A.iae(t4); t4 = sy < t4; } else t4 = false; else t4 = false; } else t4 = false; if (t4) { if (!(di >= 0 && di < t1)) return A.ioore(pixels, di); ar = pixels[di]; t4 = di + 1; if (!(t4 < t1)) return A.ioore(pixels, t4); ag = pixels[t4]; t5 = di + 2; if (!(t5 < t1)) return A.ioore(pixels, t5); ab = pixels[t5]; t5 = di + 3; if (!(t5 < t1)) return A.ioore(pixels, t5); aa = pixels[t5]; da = ba / 255 * opacity; switch (blendMode) { case 1885434739: a = aa; b = ab; g = ag; r = ar; break; case 1852797549: a = ba; b = bb; g = bg; r = br; break; case 1684632435: a = ba; b = bb; g = bg; r = br; break; case 1684107883: r = Math.min(ar, br); g = Math.min(ag, bg); b = Math.min(ab, bb); a = ba; break; case 1836411936: r = ar * br >>> 8; g = ag * bg >>> 8; b = ab * bb >>> 8; a = ba; break; case 1768188278: r = A.PsdImage__blendColorBurn(ar, br); g = A.PsdImage__blendColorBurn(ag, bg); b = A.PsdImage__blendColorBurn(ab, bb); a = ba; break; case 1818391150: r = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(ar + br - 255, 0, 255)); g = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(ag + bg - 255, 0, 255)); b = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(ab + bb - 255, 0, 255)); a = ba; break; case 1684751212: a = ba; b = bb; g = bg; r = br; break; case 1818850405: r = Math.max(ar, br); g = Math.max(ag, bg); b = Math.max(ab, bb); a = ba; break; case 1935897198: r = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(255 - (255 - br) * (255 - ar), 0, 255)); g = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(255 - (255 - bg) * (255 - ag), 0, 255)); b = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(255 - (255 - bb) * (255 - ab), 0, 255)); a = ba; break; case 1684633120: r = A.PsdImage__blendColorDodge(ar, br); g = A.PsdImage__blendColorDodge(ag, bg); b = A.PsdImage__blendColorDodge(ab, bb); a = ba; break; case 1818518631: r = br + ar > 255 ? 255 : ar + br; g = bg + ag > 255 ? 255 : ag + bg; b = bb + ab > 255 ? 255 : ab + bb; a = ba; break; case 1818706796: a = ba; b = bb; g = bg; r = br; break; case 1870030194: r = A.PsdImage__blendOverlay(ar, br, aa, ba); g = A.PsdImage__blendOverlay(ag, bg, aa, ba); b = A.PsdImage__blendOverlay(ab, bb, aa, ba); a = ba; break; case 1934387572: r = A.PsdImage__blendSoftLight(ar, br); g = A.PsdImage__blendSoftLight(ag, bg); b = A.PsdImage__blendSoftLight(ab, bb); a = ba; break; case 1749838196: r = A.PsdImage__blendHardLight(ar, br); g = A.PsdImage__blendHardLight(ag, bg); b = A.PsdImage__blendHardLight(ab, bb); a = ba; break; case 1984719220: r = A.PsdImage__blendVividLight(ar, br); g = A.PsdImage__blendVividLight(ag, bg); b = A.PsdImage__blendVividLight(ab, bb); a = ba; break; case 1816947060: r = A.PsdImage__blendLinearLight(ar, br); g = A.PsdImage__blendLinearLight(ag, bg); b = A.PsdImage__blendLinearLight(ab, bb); a = ba; break; case 1884055924: r = br < 128 ? Math.min(ar, 2 * br) : Math.max(ar, 2 * (br - 128)); g = bg < 128 ? Math.min(ag, 2 * bg) : Math.max(ag, 2 * (bg - 128)); b = bb < 128 ? Math.min(ab, 2 * bb) : Math.max(ab, 2 * (bb - 128)); a = ba; break; case 1749903736: r = br < 255 - ar ? 0 : 255; g = bg < 255 - ag ? 0 : 255; b = bb < 255 - ab ? 0 : 255; a = ba; break; case 1684629094: r = Math.abs(br - ar); g = Math.abs(bg - ag); b = Math.abs(bb - ab); a = ba; break; case 1936553316: r = B.JSNumber_methods.round$0(br + ar - 2 * br * ar / 255); g = B.JSNumber_methods.round$0(bg + ag - 2 * bg * ag / 255); b = B.JSNumber_methods.round$0(bb + ab - 2 * bb * ab / 255); a = ba; break; case 1718842722: a = ba; b = bb; g = bg; r = br; break; case 1717856630: a = ba; b = bb; g = bg; r = br; break; case 1752524064: a = ba; b = bb; g = bg; r = br; break; case 1935766560: a = ba; b = bb; g = bg; r = br; break; case 1668246642: a = ba; b = bb; g = bg; r = br; break; case 1819634976: a = ba; b = bb; g = bg; r = br; break; default: a = ba; b = bb; g = bg; r = br; } t5 = 1 - da; r = B.JSNumber_methods.toInt$0(ar * t5 + r * da); g = B.JSNumber_methods.toInt$0(ag * t5 + g * da); b = B.JSNumber_methods.toInt$0(ab * t5 + b * da); a = B.JSNumber_methods.toInt$0(aa * t5 + a * da); pixels[di] = r; di0 = t4 + 1; pixels[t4] = g; di1 = di0 + 1; if (!(di0 < t1)) return A.ioore(pixels, di0); pixels[di0] = b; if (!(di1 < t1)) return A.ioore(pixels, di1); pixels[di1] = a; } di += 4; } } } t1 = _this.mergedImage; t1.toString; return t1; }, _psd_image$_readHeader$0() { var t1, padding, t2, t3, i, t4, _this = this, _s6_ = "_input"; _this.signature = A._lateReadCheck(_this.__PsdImage__input, _s6_).readUint32$0(); t1 = A._lateReadCheck(_this.__PsdImage__input, _s6_).readUint16$0(); _this.version = t1; if (t1 !== 1) { _this.signature = 0; return; } padding = A._lateReadCheck(_this.__PsdImage__input, _s6_).readBytes$1(6); for (t1 = padding.buffer, t2 = padding.offset, t3 = t1.length, i = 0; i < 6; ++i) { t4 = t2 + i; if (!(t4 >= 0 && t4 < t3)) return A.ioore(t1, t4); if (t1[t4] !== 0) { _this.signature = 0; return; } } _this.__PsdImage_channels = A._lateReadCheck(_this.__PsdImage__input, _s6_).readUint16$0(); _this.height = A._lateReadCheck(_this.__PsdImage__input, _s6_).readUint32$0(); _this.width = A._lateReadCheck(_this.__PsdImage__input, _s6_).readUint32$0(); _this.depth = A._lateReadCheck(_this.__PsdImage__input, _s6_).readUint16$0(); _this.colorMode = A._lateReadCheck(_this.__PsdImage__input, _s6_).readUint16$0(); }, _readImageResources$0() { var t2, blockSignature, blockId, t3, len, bytes, _this = this, _s18_ = "_imageResourceData", t1 = A._lateReadCheck(_this.__PsdImage__imageResourceData, _s18_); t1.offset = t1.start; for (t1 = _this.imageResources; t2 = A._lateReadCheck(_this.__PsdImage__imageResourceData, _s18_), t2.offset < t2.end;) { blockSignature = A._lateReadCheck(_this.__PsdImage__imageResourceData, _s18_).readUint32$0(); blockId = A._lateReadCheck(_this.__PsdImage__imageResourceData, _s18_).readUint16$0(); t2 = A._lateReadCheck(_this.__PsdImage__imageResourceData, _s18_); t3 = t2.buffer; t2 = t2.offset++; if (!(t2 >= 0 && t2 < t3.length)) return A.ioore(t3, t2); t2 = t3[t2]; A._lateReadCheck(_this.__PsdImage__imageResourceData, _s18_).readString$1(t2); if ((t2 & 1) === 0) ++A._lateReadCheck(_this.__PsdImage__imageResourceData, _s18_).offset; len = A._lateReadCheck(_this.__PsdImage__imageResourceData, _s18_).readUint32$0(); t2 = A._lateReadCheck(_this.__PsdImage__imageResourceData, _s18_); bytes = t2.subset$1(len); t2.offset = t2.offset + (bytes.end - bytes.offset); if ((len & 1) === 1) ++A._lateReadCheck(_this.__PsdImage__imageResourceData, _s18_).offset; if (blockSignature === 943868237) t1.$indexSet(0, blockId, new A.PsdImageResource()); } }, _readLayerAndMaskData$0() { var len, layerData, t2, count, t3, t4, i, layer, maskData, _this = this, _s17_ = "_layerAndMaskData", _s6_ = "layers", t1 = A._lateReadCheck(_this.__PsdImage__layerAndMaskData, _s17_); t1.offset = t1.start; len = A._lateReadCheck(_this.__PsdImage__layerAndMaskData, _s17_).readUint32$0(); if ((len & 1) !== 0) ++len; layerData = A._lateReadCheck(_this.__PsdImage__layerAndMaskData, _s17_).readBytes$1(len); t1 = type$.JSArray_PsdLayer; _this.set$__PsdImage_layers(type$.List_PsdLayer._as(A._setArrayType([], t1))); if (len > 0) { t2 = layerData.readUint16$0(); $.$get$__uint16()[0] = t2; t2 = $.$get$__uint16ToInt16(); if (0 >= t2.length) return A.ioore(t2, 0); count = t2[0]; if (count < 0) count = -count; for (t2 = type$.String, t3 = type$.PsdLayerData, t4 = type$.JSArray_PsdEffect, i = 0; i < count; ++i) { layer = new A.PsdLayer(A.LinkedHashMap_LinkedHashMap$_empty(t2, t3), A._setArrayType([], t1), A._setArrayType([], t4)); layer.PsdLayer$1(layerData); J.add$1$ax(A._lateReadCheck(_this.__PsdImage_layers, _s6_), layer); } } for (i = 0; i < J.get$length$asx(A._lateReadCheck(_this.__PsdImage_layers, _s6_)); ++i) J.$index$asx(A._lateReadCheck(_this.__PsdImage_layers, _s6_), i).readImageData$2(layerData, _this); len = A._lateReadCheck(_this.__PsdImage__layerAndMaskData, _s17_).readUint32$0(); maskData = A._lateReadCheck(_this.__PsdImage__layerAndMaskData, _s17_).readBytes$1(len); if (len > 0) { maskData.readUint16$0(); maskData.readUint16$0(); maskData.readUint16$0(); maskData.readUint16$0(); maskData.readUint16$0(); maskData.readUint16$0(); maskData.readByte$0(); } }, _readMergeImageData$0() { var compression, t2, numLines, lineLengths, i, t3, _this = this, _s10_ = "_imageData", _s8_ = "channels", _s18_ = "mergeImageChannels", t1 = A._lateReadCheck(_this.__PsdImage__imageData, _s10_); t1.offset = t1.start; compression = A._lateReadCheck(_this.__PsdImage__imageData, _s10_).readUint16$0(); if (compression === 1) { t1 = _this.height; t2 = A._lateReadCheck(_this.__PsdImage_channels, _s8_); if (typeof t1 !== "number") return t1.$mul(); numLines = t1 * t2; lineLengths = new Uint16Array(numLines); for (i = 0; i < numLines; ++i) { t1 = A._lateReadCheck(_this.__PsdImage__imageData, _s10_).readUint16$0(); if (!(i < numLines)) return A.ioore(lineLengths, i); lineLengths[i] = t1; } } else lineLengths = null; _this.set$__PsdImage_mergeImageChannels(type$.List_PsdChannel._as(A._setArrayType([], type$.JSArray_PsdChannel))); for (i = 0; i < A._lateReadCheck(_this.__PsdImage_channels, _s8_); ++i) { t1 = A._lateReadCheck(_this.__PsdImage_mergeImageChannels, _s18_); t2 = A._lateReadCheck(_this.__PsdImage__imageData, _s10_); t2.toString; t3 = i === 3 ? -1 : i; t3 = new A.PsdChannel(t3); t3.readPlane$7(t2, _this.width, _this.height, _this.depth, compression, lineLengths, i); J.add$1$ax(t1, t3); } _this.mergedImage = A.PsdImage_createImageFromChannels(_this.colorMode, _this.depth, _this.width, _this.height, A._lateReadCheck(_this.__PsdImage_mergeImageChannels, _s18_)); }, set$__PsdImage_layers(__PsdImage_layers) { this.__PsdImage_layers = type$.List_PsdLayer._as(__PsdImage_layers); }, set$__PsdImage_mergeImageChannels(__PsdImage_mergeImageChannels) { this.__PsdImage_mergeImageChannels = type$.List_PsdChannel._as(__PsdImage_mergeImageChannels); } }; A.PsdImageResource.prototype = {}; A.PsdLayer.prototype = { PsdLayer$1(input) { var numChannels, i, id, sig, len, extra, maskData, padding, t3, t4, t5, tag, bytes, t6, data, numFx, j, fxTag, size, fx, t7, t8, t9, _this = this, t1 = input.readUint32$0(), t2 = $.$get$__uint32(); t2[0] = t1; t1 = $.$get$__uint32ToInt32(); if (0 >= t1.length) return A.ioore(t1, 0); _this.top = t1[0]; t2[0] = input.readUint32$0(); _this.left = t1[0]; t2[0] = input.readUint32$0(); _this.__PsdLayer_bottom = t1[0]; t2[0] = input.readUint32$0(); t1 = t1[0]; _this.__PsdLayer_right = t1; t1 = A._lateReadCheck(t1, "right"); t2 = _this.left; t2.toString; _this.__PsdLayer_width = t1 - t2; t2 = A._lateReadCheck(_this.__PsdLayer_bottom, "bottom"); t1 = _this.top; t1.toString; _this.__PsdLayer_height = t2 - t1; _this.set$__PsdLayer_channels(type$.List_PsdChannel._as(A._setArrayType([], type$.JSArray_PsdChannel))); numChannels = input.readUint16$0(); for (i = 0; i < numChannels; ++i) { t1 = input.readUint16$0(); $.$get$__uint16()[0] = t1; t1 = $.$get$__uint16ToInt16(); if (0 >= t1.length) return A.ioore(t1, 0); id = t1[0]; input.readUint32$0(); J.add$1$ax(A._lateReadCheck(_this.__PsdLayer_channels, "channels"), new A.PsdChannel(id)); } sig = input.readUint32$0(); if (sig !== 943868237) throw A.wrapException(A.ImageException$("Invalid PSD layer signature: " + B.JSInt_methods.toRadixString$1(sig, 16))); _this.blendMode = input.readUint32$0(); _this.__PsdLayer_opacity = input.readByte$0(); input.readByte$0(); _this.__PsdLayer_flags = input.readByte$0(); if (input.readByte$0() !== 0) throw A.wrapException(A.ImageException$("Invalid PSD layer data")); len = input.readUint32$0(); extra = input.readBytes$1(len); if (len > 0) { len = extra.readUint32$0(); if (len > 0) { maskData = extra.readBytes$1(len); t1 = maskData.offset; maskData.readUint32$0(); maskData.readUint32$0(); maskData.readUint32$0(); maskData.readUint32$0(); maskData.readByte$0(); maskData.readByte$0(); if (maskData.end - t1 === 20) maskData.offset += 2; else { maskData.readByte$0(); maskData.readByte$0(); maskData.readUint32$0(); maskData.readUint32$0(); maskData.readUint32$0(); maskData.readUint32$0(); } } len = extra.readUint32$0(); if (len > 0) new A.PsdBlendingRanges().PsdBlendingRanges$1(extra.readBytes$1(len)); len = extra.readByte$0(); extra.readString$1(len); padding = 4 - B.JSInt_methods.$mod(len, 4) - 1; if (padding > 0) extra.offset += padding; for (t1 = extra.end, t2 = _this.additionalData, t3 = _this.effects, t4 = type$.JSArray_int, t5 = type$.PsdLayerAdditionalData; extra.offset < t1;) { sig = extra.readUint32$0(); if (sig !== 943868237) throw A.wrapException(A.ImageException$("PSD invalid signature for layer additional data: " + B.JSInt_methods.toRadixString$1(sig, 16))); tag = extra.readString$1(4); len = extra.readUint32$0(); bytes = extra.subset$1(len); t6 = extra.offset + (bytes.end - bytes.offset); extra.offset = t6; if ((len & 1) === 1) extra.offset = t6 + 1; t2.$indexSet(0, tag, A.PsdLayerData_PsdLayerData(tag, bytes)); if (tag === "lrFX") { data = A.InputBuffer$from(t5._as(t2.$index(0, "lrFX")).data, null, 0); data.readUint16$0(); numFx = data.readUint16$0(); for (j = 0; j < numFx; ++j) { data.readString$1(4); fxTag = data.readString$1(4); size = data.readUint32$0(); if (fxTag === "dsdw") { fx = new A.PsdDropShadowEffect(); B.JSArray_methods.add$1(t3, fx); fx.version = data.readUint32$0(); data.readUint32$0(); data.readUint32$0(); data.readUint32$0(); data.readUint32$0(); fx.set$color(0, A._setArrayType([data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0()], t4)); data.readString$1(8); t6 = data.buffer; t7 = data.offset; t8 = data.offset = t7 + 1; t9 = t6.length; if (!(t7 >= 0 && t7 < t9)) return A.ioore(t6, t7); t7 = data.offset = t8 + 1; if (!(t8 >= 0 && t8 < t9)) return A.ioore(t6, t8); data.offset = t7 + 1; if (!(t7 >= 0 && t7 < t9)) return A.ioore(t6, t7); fx.set$nativeColor(A._setArrayType([data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0()], t4)); } else if (fxTag === "isdw") { fx = new A.PsdInnerShadowEffect(); B.JSArray_methods.add$1(t3, fx); fx.version = data.readUint32$0(); data.readUint32$0(); data.readUint32$0(); data.readUint32$0(); data.readUint32$0(); fx.set$color(0, A._setArrayType([data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0()], t4)); data.readString$1(8); t6 = data.buffer; t7 = data.offset; t8 = data.offset = t7 + 1; t9 = t6.length; if (!(t7 >= 0 && t7 < t9)) return A.ioore(t6, t7); t7 = data.offset = t8 + 1; if (!(t8 >= 0 && t8 < t9)) return A.ioore(t6, t8); data.offset = t7 + 1; if (!(t7 >= 0 && t7 < t9)) return A.ioore(t6, t7); fx.set$nativeColor(A._setArrayType([data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0()], t4)); } else if (fxTag === "oglw") { fx = new A.PsdOuterGlowEffect(); B.JSArray_methods.add$1(t3, fx); fx.version = data.readUint32$0(); data.readUint32$0(); data.readUint32$0(); fx.set$color(0, A._setArrayType([data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0()], t4)); data.readString$1(8); t6 = data.buffer; t7 = data.offset; t8 = data.offset = t7 + 1; t9 = t6.length; if (!(t7 >= 0 && t7 < t9)) return A.ioore(t6, t7); data.offset = t8 + 1; if (!(t8 >= 0 && t8 < t9)) return A.ioore(t6, t8); if (fx.version === 2) fx.set$nativeColor(A._setArrayType([data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0()], t4)); } else if (fxTag === "iglw") { fx = new A.PsdInnerGlowEffect(); B.JSArray_methods.add$1(t3, fx); fx.version = data.readUint32$0(); data.readUint32$0(); data.readUint32$0(); fx.set$color(0, A._setArrayType([data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0()], t4)); data.readString$1(8); t6 = data.buffer; t7 = data.offset; t8 = data.offset = t7 + 1; t9 = t6.length; if (!(t7 >= 0 && t7 < t9)) return A.ioore(t6, t7); t7 = data.offset = t8 + 1; if (!(t8 >= 0 && t8 < t9)) return A.ioore(t6, t8); if (fx.version === 2) { data.offset = t7 + 1; if (!(t7 >= 0 && t7 < t9)) return A.ioore(t6, t7); fx.set$nativeColor(A._setArrayType([data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0()], t4)); } } else if (fxTag === "bevl") { fx = new A.PsdBevelEffect(); B.JSArray_methods.add$1(t3, fx); fx.version = data.readUint32$0(); data.readUint32$0(); data.readUint32$0(); data.readUint32$0(); data.readString$1(8); data.readString$1(8); fx.set$highlightColor(A._setArrayType([data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0()], t4)); fx.set$shadowColor(0, A._setArrayType([data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0()], t4)); t6 = data.buffer; t7 = data.offset; t8 = data.offset = t7 + 1; t9 = t6.length; if (!(t7 >= 0 && t7 < t9)) return A.ioore(t6, t7); t7 = data.offset = t8 + 1; if (!(t8 >= 0 && t8 < t9)) return A.ioore(t6, t8); t8 = data.offset = t7 + 1; if (!(t7 >= 0 && t7 < t9)) return A.ioore(t6, t7); t7 = data.offset = t8 + 1; if (!(t8 >= 0 && t8 < t9)) return A.ioore(t6, t8); t8 = data.offset = t7 + 1; if (!(t7 >= 0 && t7 < t9)) return A.ioore(t6, t7); data.offset = t8 + 1; if (!(t8 >= 0 && t8 < t9)) return A.ioore(t6, t8); if (fx.version === 2) { fx.set$realHighlightColor(A._setArrayType([data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0()], t4)); fx.set$realShadowColor(A._setArrayType([data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0()], t4)); } } else if (fxTag === "sofi") { fx = new A.PsdSolidFillEffect(); B.JSArray_methods.add$1(t3, fx); fx.version = data.readUint32$0(); data.readString$1(4); fx.set$color(0, A._setArrayType([data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0()], t4)); t6 = data.buffer; t7 = data.offset; t8 = data.offset = t7 + 1; t9 = t6.length; if (!(t7 >= 0 && t7 < t9)) return A.ioore(t6, t7); data.offset = t8 + 1; if (!(t8 >= 0 && t8 < t9)) return A.ioore(t6, t8); fx.set$nativeColor(A._setArrayType([data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0()], t4)); } else data.offset += size; } } } } }, readImageData$2(input, psd) { var i, _this = this, _s8_ = "channels"; for (i = 0; i < J.get$length$asx(A._lateReadCheck(_this.__PsdLayer_channels, _s8_)); ++i) J.$index$asx(A._lateReadCheck(_this.__PsdLayer_channels, _s8_), i).readPlane$4(input, A._lateReadCheck(_this.__PsdLayer_width, "width"), A._lateReadCheck(_this.__PsdLayer_height, "height"), psd.depth); _this.__PsdLayer_layerImage = A.PsdImage_createImageFromChannels(psd.colorMode, psd.depth, A._lateReadCheck(_this.__PsdLayer_width, "width"), A._lateReadCheck(_this.__PsdLayer_height, "height"), A._lateReadCheck(_this.__PsdLayer_channels, _s8_)); }, set$__PsdLayer_channels(__PsdLayer_channels) { this.__PsdLayer_channels = type$.List_PsdChannel._as(__PsdLayer_channels); } }; A.PsdLayerData.prototype = {}; A.PsdDecoder.prototype = { decodeImage$1(bytes) { this.info = A.PsdImage$(type$.List_int._as(bytes)); return this.decodeFrame$1(0); }, decodeFrame$1(frame) { var t1 = this.info; if (t1 == null) return null; return t1.decodeImage$0(); } }; A.TgaInfo.prototype = {}; A.TgaDecoder.prototype = { isValidFile$1(data) { var header = A.InputBuffer$(type$.List_int._as(data), true, null, 0).readBytes$1(18), t1 = header.buffer, t2 = header.offset, t3 = t2 + 2, t4 = t1.length; if (!(t3 >= 0 && t3 < t4)) return A.ioore(t1, t3); if (t1[t3] !== 2) return false; t2 += 16; if (!(t2 >= 0 && t2 < t4)) return A.ioore(t1, t2); t2 = t1[t2]; if (t2 !== 24 && t2 !== 32) return false; return true; }, startDecode$1(bytes) { var t1, header, t2, t3, t4, t5, t6, _this = this; type$.List_int._as(bytes); _this.info = new A.TgaInfo(); t1 = A.InputBuffer$(bytes, true, null, 0); _this.__TgaDecoder_input = t1; header = A._lateReadCheck(t1, "input").readBytes$1(18); t1 = header.buffer; t2 = header.offset; t3 = t2 + 2; t4 = t1.length; if (!(t3 >= 0 && t3 < t4)) return A.ioore(t1, t3); if (t1[t3] !== 2) return null; t3 = t2 + 16; if (!(t3 >= 0 && t3 < t4)) return A.ioore(t1, t3); t3 = t1[t3]; if (t3 !== 24 && t3 !== 32) return null; t3 = _this.info; t3.toString; t5 = t2 + 12; if (!(t5 >= 0 && t5 < t4)) return A.ioore(t1, t5); t5 = t1[t5]; t6 = t2 + 13; if (!(t6 >= 0 && t6 < t4)) return A.ioore(t1, t6); t3.width = t5 & 255 | (t1[t6] & 255) << 8; t6 = t2 + 14; if (!(t6 >= 0 && t6 < t4)) return A.ioore(t1, t6); t6 = t1[t6]; t2 += 15; if (!(t2 >= 0 && t2 < t4)) return A.ioore(t1, t2); t3.height = t6 & 255 | (t1[t2] & 255) << 8; t3.imageOffset = A._lateReadCheck(_this.__TgaDecoder_input, "input").offset; t3 = _this.info; t3.toString; t2 = header.buffer; t1 = header.offset + 16; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); t3.bpp = t2[t1]; return t3; }, decodeFrame$1(frame) { var t1, t2, t3, image, y, t4, x, t5, t6, t7, t8, t9, a, _this = this, _s5_ = "input"; if (_this.info == null) return null; t1 = A._lateReadCheck(_this.__TgaDecoder_input, _s5_); t2 = _this.info; t3 = t2.imageOffset; t3.toString; t1.offset = t3; image = A.Image$(t2.width, t2.height, B.Channels_0, null, null); for (y = image.height - 1, t1 = image.width, t2 = image.data, t3 = t2.length; y >= 0; --y) for (t4 = y * t1, x = 0; x < t1; ++x) { t5 = A._lateReadCheck(_this.__TgaDecoder_input, _s5_); t6 = t5.buffer; t5 = t5.offset++; if (!(t5 >= 0 && t5 < t6.length)) return A.ioore(t6, t5); t5 = t6[t5]; t6 = A._lateReadCheck(_this.__TgaDecoder_input, _s5_); t7 = t6.buffer; t6 = t6.offset++; if (!(t6 >= 0 && t6 < t7.length)) return A.ioore(t7, t6); t6 = t7[t6]; t7 = A._lateReadCheck(_this.__TgaDecoder_input, _s5_); t8 = t7.buffer; t7 = t7.offset++; if (!(t7 >= 0 && t7 < t8.length)) return A.ioore(t8, t7); t7 = t8[t7]; if (_this.info.bpp === 32) { t8 = A._lateReadCheck(_this.__TgaDecoder_input, _s5_); t9 = t8.buffer; t8 = t8.offset++; if (!(t8 >= 0 && t8 < t9.length)) return A.ioore(t9, t8); a = t9[t8]; } else a = 255; t8 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(a, 0, 255)); t5 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(t5, 0, 255)); t6 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(t6, 0, 255)); t7 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(t7, 0, 255)); t9 = t4 + x; if (!(t9 >= 0 && t9 < t3)) return A.ioore(t2, t9); t2[t9] = (t8 << 24 | t5 << 16 | t6 << 8 | t7) >>> 0; } return image; }, decodeImage$1(bytes) { if (this.startDecode$1(type$.List_int._as(bytes)) == null) return null; return this.decodeFrame$1(0); } }; A.TgaEncoder.prototype = { encodeImage$1(image) { var t1, t2, t3, y, t4, t5, x, t6, c, out = A.OutputBuffer$(true, 8192), header = A.List_List$filled(18, 0, false, type$.int); B.JSArray_methods.$indexSet(header, 2, 2); t1 = image.width; B.JSArray_methods.$indexSet(header, 12, t1 & 255); B.JSArray_methods.$indexSet(header, 13, B.JSInt_methods._shrOtherPositive$1(t1, 8) & 255); t2 = image.height; B.JSArray_methods.$indexSet(header, 14, t2 & 255); B.JSArray_methods.$indexSet(header, 15, B.JSInt_methods._shrOtherPositive$1(t2, 8) & 255); t3 = image.channels; B.JSArray_methods.$indexSet(header, 16, t3 === B.Channels_0 ? 24 : 32); out.writeBytes$1(header); for (y = t2 - 1, t2 = t3 === B.Channels_1, t3 = image.data, t4 = t3.length; y >= 0; --y) for (t5 = y * t1, x = 0; x < t1; ++x) { t6 = t5 + x; if (!(t6 >= 0 && t6 < t4)) return A.ioore(t3, t6); c = t3[t6]; out.writeByte$1(c >>> 16 & 255); out.writeByte$1(c >>> 8 & 255); out.writeByte$1(c & 255); if (t2) out.writeByte$1(c >>> 24 & 255); } return A.NativeUint8List_NativeUint8List$view(out._buffer.buffer, 0, out.length); } }; A.TiffBitReader.prototype = { readBits$1(numBits) { var t1, value, t2, t3, t4, _this = this; if (numBits === 0) return 0; if (_this._bitPos === 0) { _this._bitPos = 8; _this._tiff_bit_reader$_bitBuffer = _this.input.readByte$0(); } for (t1 = _this.input, value = 0; t2 = _this._bitPos, numBits > t2;) { t3 = B.JSInt_methods.$shl(value, t2); t4 = _this._tiff_bit_reader$_bitBuffer; if (!(t2 >= 0 && t2 < 9)) return A.ioore(B.List_knt, t2); value = t3 + (t4 & B.List_knt[t2]); numBits -= t2; _this._bitPos = 8; t2 = t1.buffer; t4 = t1.offset++; if (!(t4 >= 0 && t4 < t2.length)) return A.ioore(t2, t4); _this._tiff_bit_reader$_bitBuffer = t2[t4]; } if (numBits > 0) { if (t2 === 0) { _this._bitPos = 8; _this._tiff_bit_reader$_bitBuffer = t1.readByte$0(); } t1 = B.JSInt_methods.$shl(value, numBits); t2 = _this._tiff_bit_reader$_bitBuffer; t3 = _this._bitPos - numBits; t2 = B.JSInt_methods.$shr(t2, t3); if (!(numBits < 9)) return A.ioore(B.List_knt, numBits); value = t1 + (t2 & B.List_knt[numBits]); _this._bitPos = t3; } return value; } }; A.TiffEntry.prototype = { toString$0(_) { var _this = this, t1 = _this.tag; if (B.Map_6zffn.containsKey$1(0, t1)) return A.S(B.Map_6zffn.$index(0, t1)) + ": " + _this.type + " " + _this.numValues; return "<" + t1 + ">: " + _this.type + " " + _this.numValues; }, readValue$0(_) { var t1 = this.valueOffset; t1.toString; this.p.offset = t1; return this._readValue$0(); }, readValues$0() { var values, i, _this = this, t1 = _this.valueOffset; t1.toString; _this.p.offset = t1; values = A._setArrayType([], type$.JSArray_int); for (t1 = _this.numValues, i = 0; i < t1; ++i) B.JSArray_methods.add$1(values, _this._readValue$0()); return values; }, _readValue$0() { var t1, num, den, _this = this; switch (_this.type) { case 1: case 2: return _this.p.readByte$0(); case 3: return _this.p.readUint16$0(); case 4: return _this.p.readUint32$0(); case 5: t1 = _this.p; num = t1.readUint32$0(); den = t1.readUint32$0(); if (den === 0) return 0; return B.JSInt_methods.$tdiv(num, den); case 6: throw A.wrapException(A.ImageException$("Unhandled value type: SBYTE")); case 7: return _this.p.readByte$0(); case 8: throw A.wrapException(A.ImageException$("Unhandled value type: SSHORT")); case 9: throw A.wrapException(A.ImageException$("Unhandled value type: SLONG")); case 10: throw A.wrapException(A.ImageException$("Unhandled value type: SRATIONAL")); case 11: throw A.wrapException(A.ImageException$("Unhandled value type: FLOAT")); case 12: throw A.wrapException(A.ImageException$("Unhandled value type: DOUBLE")); } return 0; } }; A.TiffFaxDecoder.prototype = { decode1D$4(out, compData, startX, height) { var scanlineStride, lineOffset, i, _this = this; _this.__TiffFaxDecoder_data = compData; _this.bytePointer = _this.bitPointer = 0; scanlineStride = B.JSInt_methods._tdivFast$1(_this.width + 7, 8); for (lineOffset = 0, i = 0; i < height; ++i) { _this._decodeNextScanline$3(out, lineOffset, startX); lineOffset += scanlineStride; } }, _decodeNextScanline$3(buffer, lineOffset, bitOffset) { var t1, isWhite, current, entry, bits, t2, code, _this = this; _this.changingElemSize = 0; for (t1 = _this.width, isWhite = true; bitOffset < t1;) { for (; isWhite;) { current = _this._nextNBits$1(10); if (!(current < 1024)) return A.ioore(B.List_VSP, current); entry = B.List_VSP[current]; bits = B.JSInt_methods._shrOtherPositive$1(entry, 1) & 15; if (bits === 12) { current = (current << 2 & 12 | _this._nextLesserThan8Bits$1(2)) >>> 0; if (!(current < 16)) return A.ioore(B.List_MEg, current); entry = B.List_MEg[current]; t2 = B.JSInt_methods._shrOtherPositive$1(entry, 1); bitOffset += B.JSInt_methods._shrOtherPositive$1(entry, 4) & 4095; _this._updatePointer$1(4 - (t2 & 7)); } else if (bits === 0) throw A.wrapException(A.ImageException$("TIFFFaxDecoder0")); else if (bits === 15) throw A.wrapException(A.ImageException$("TIFFFaxDecoder1")); else { bitOffset += B.JSInt_methods._shrOtherPositive$1(entry, 5) & 2047; _this._updatePointer$1(10 - bits); if ((entry & 1) === 0) { B.JSArray_methods.$indexSet(_this.currChangingElems, _this.changingElemSize++, bitOffset); isWhite = false; } } } if (bitOffset === t1) { if (_this.compression === 2) if (_this.bitPointer !== 0) { t1 = _this.bytePointer; t1.toString; _this.bytePointer = t1 + 1; _this.bitPointer = 0; } break; } for (; !isWhite;) { current = _this._nextLesserThan8Bits$1(4); if (!(current < 16)) return A.ioore(B.List_89P, current); entry = B.List_89P[current]; code = entry >>> 5 & 2047; if (code === 100) { current = _this._nextNBits$1(9); if (!(current < 512)) return A.ioore(B.List_nLG, current); entry = B.List_nLG[current]; bits = B.JSInt_methods._shrOtherPositive$1(entry, 1) & 15; code = B.JSInt_methods._shrOtherPositive$1(entry, 5) & 2047; if (bits === 12) { _this._updatePointer$1(5); current = _this._nextLesserThan8Bits$1(4); if (!(current < 16)) return A.ioore(B.List_MEg, current); entry = B.List_MEg[current]; t2 = B.JSInt_methods._shrOtherPositive$1(entry, 1); code = B.JSInt_methods._shrOtherPositive$1(entry, 4) & 4095; _this._setToBlack$4(buffer, lineOffset, bitOffset, code); bitOffset += code; _this._updatePointer$1(4 - (t2 & 7)); } else if (bits === 15) throw A.wrapException(A.ImageException$("TIFFFaxDecoder2")); else { _this._setToBlack$4(buffer, lineOffset, bitOffset, code); bitOffset += code; _this._updatePointer$1(9 - bits); if ((entry & 1) === 0) { B.JSArray_methods.$indexSet(_this.currChangingElems, _this.changingElemSize++, bitOffset); isWhite = true; } } } else { if (code === 200) { current = _this._nextLesserThan8Bits$1(2); if (!(current < 4)) return A.ioore(B.List_292_260_226_226, current); entry = B.List_292_260_226_226[current]; code = entry >>> 5 & 2047; _this._setToBlack$4(buffer, lineOffset, bitOffset, code); bitOffset += code; _this._updatePointer$1(2 - (entry >>> 1 & 15)); B.JSArray_methods.$indexSet(_this.currChangingElems, _this.changingElemSize++, bitOffset); } else { _this._setToBlack$4(buffer, lineOffset, bitOffset, code); bitOffset += code; _this._updatePointer$1(4 - (entry >>> 1 & 15)); B.JSArray_methods.$indexSet(_this.currChangingElems, _this.changingElemSize++, bitOffset); } isWhite = true; } } if (bitOffset === t1) { if (_this.compression === 2) if (_this.bitPointer !== 0) { t1 = _this.bytePointer; t1.toString; _this.bytePointer = t1 + 1; _this.bitPointer = 0; } break; } } B.JSArray_methods.$indexSet(_this.currChangingElems, _this.changingElemSize++, bitOffset); }, decode2D$5(out, compData, startX, height, tiffT4Options) { var t1, scanlineStride, b, lineOffset, lines, temp, bitOffset, a0, isWhite, currIndex, b1, b2, entry, code, bits, currIndex0, currIndex1, number, a1, _this = this; _this.__TiffFaxDecoder_data = compData; _this.compression = 3; _this.bytePointer = _this.bitPointer = 0; t1 = _this.width; scanlineStride = B.JSInt_methods._tdivFast$1(t1 + 7, 8); b = A.List_List$filled(2, null, false, type$.nullable_int); _this.oneD = tiffT4Options & 1; _this.fillBits = tiffT4Options >>> 2 & 1; if (_this._readEOL$0() !== 1) throw A.wrapException(A.ImageException$("TIFFFaxDecoder3")); _this._decodeNextScanline$3(out, 0, startX); for (lineOffset = scanlineStride, lines = 1; lines < height; ++lines) { if (_this._readEOL$0() === 0) { temp = _this.prevChangingElems; _this.set$prevChangingElems(_this.currChangingElems); _this.set$currChangingElems(temp); _this.lastChangingElement = 0; bitOffset = startX; a0 = -1; isWhite = true; currIndex = 0; while (true) { bitOffset.toString; if (!(bitOffset < t1)) break; _this._getNextChangingElement$3(a0, isWhite, b); b1 = b[0]; b2 = b[1]; entry = _this._nextLesserThan8Bits$1(7); if (!(entry < 128)) return A.ioore(B.List_8co, entry); entry = B.List_8co[entry] & 255; code = entry >>> 3 & 15; bits = entry & 7; if (code === 0) { if (!isWhite) { b2.toString; _this._setToBlack$4(out, lineOffset, bitOffset, b2 - bitOffset); } _this._updatePointer$1(7 - bits); bitOffset = b2; a0 = bitOffset; } else if (code === 1) { _this._updatePointer$1(7 - bits); currIndex0 = currIndex + 1; currIndex1 = currIndex0 + 1; if (isWhite) { bitOffset += _this._decodeWhiteCodeWord$0(); B.JSArray_methods.$indexSet(_this.currChangingElems, currIndex, bitOffset); number = _this._decodeBlackCodeWord$0(); _this._setToBlack$4(out, lineOffset, bitOffset, number); bitOffset += number; B.JSArray_methods.$indexSet(_this.currChangingElems, currIndex0, bitOffset); } else { number = _this._decodeBlackCodeWord$0(); _this._setToBlack$4(out, lineOffset, bitOffset, number); bitOffset += number; B.JSArray_methods.$indexSet(_this.currChangingElems, currIndex, bitOffset); bitOffset += _this._decodeWhiteCodeWord$0(); B.JSArray_methods.$indexSet(_this.currChangingElems, currIndex0, bitOffset); } currIndex = currIndex1; a0 = bitOffset; } else { if (code <= 8) { b1.toString; a1 = b1 + (code - 5); currIndex0 = currIndex + 1; B.JSArray_methods.$indexSet(_this.currChangingElems, currIndex, a1); isWhite = !isWhite; if (isWhite) _this._setToBlack$4(out, lineOffset, bitOffset, a1 - bitOffset); _this._updatePointer$1(7 - bits); } else throw A.wrapException(A.ImageException$("TIFFFaxDecoder4")); bitOffset = a1; currIndex = currIndex0; a0 = bitOffset; } } B.JSArray_methods.$indexSet(_this.currChangingElems, currIndex, bitOffset); _this.changingElemSize = currIndex + 1; } else _this._decodeNextScanline$3(out, lineOffset, startX); lineOffset += scanlineStride; } }, decodeT6$5(out, compData, startX, height, tiffT6Options) { var t1, scanlineStride, b, cce, lineOffset, lines, temp, bitOffset, a0, isWhite, currIndex, b1, b2, entry, code, bits, currIndex0, currIndex1, number, a1, zeros, exit, _this = this; _this.__TiffFaxDecoder_data = compData; _this.compression = 4; _this.bytePointer = _this.bitPointer = 0; t1 = _this.width; scanlineStride = B.JSInt_methods._tdivFast$1(t1 + 7, 8); b = A.List_List$filled(2, null, false, type$.nullable_int); cce = _this.currChangingElems; _this.changingElemSize = 0; _this.changingElemSize = 1; B.JSArray_methods.$indexSet(cce, 0, t1); B.JSArray_methods.$indexSet(cce, _this.changingElemSize++, t1); for (lineOffset = 0, lines = 0; lines < height; ++lines) { temp = _this.prevChangingElems; _this.set$prevChangingElems(_this.currChangingElems); _this.set$currChangingElems(temp); _this.lastChangingElement = 0; bitOffset = startX; a0 = -1; isWhite = true; currIndex = 0; while (true) { bitOffset.toString; if (!(bitOffset < t1)) break; _this._getNextChangingElement$3(a0, isWhite, b); b1 = b[0]; b2 = b[1]; entry = _this._nextLesserThan8Bits$1(7); if (!(entry < 128)) return A.ioore(B.List_8co, entry); entry = B.List_8co[entry] & 255; code = entry >>> 3 & 15; bits = entry & 7; if (code === 0) { if (!isWhite) { b2.toString; _this._setToBlack$4(out, lineOffset, bitOffset, b2 - bitOffset); } _this._updatePointer$1(7 - bits); bitOffset = b2; a0 = bitOffset; } else if (code === 1) { _this._updatePointer$1(7 - bits); currIndex0 = currIndex + 1; currIndex1 = currIndex0 + 1; if (isWhite) { bitOffset += _this._decodeWhiteCodeWord$0(); B.JSArray_methods.$indexSet(temp, currIndex, bitOffset); number = _this._decodeBlackCodeWord$0(); _this._setToBlack$4(out, lineOffset, bitOffset, number); bitOffset += number; B.JSArray_methods.$indexSet(temp, currIndex0, bitOffset); } else { number = _this._decodeBlackCodeWord$0(); _this._setToBlack$4(out, lineOffset, bitOffset, number); bitOffset += number; B.JSArray_methods.$indexSet(temp, currIndex, bitOffset); bitOffset += _this._decodeWhiteCodeWord$0(); B.JSArray_methods.$indexSet(temp, currIndex0, bitOffset); } currIndex = currIndex1; a0 = bitOffset; } else if (code <= 8) { b1.toString; a1 = b1 + (code - 5); currIndex0 = currIndex + 1; B.JSArray_methods.$indexSet(temp, currIndex, a1); isWhite = !isWhite; if (isWhite) _this._setToBlack$4(out, lineOffset, bitOffset, a1 - bitOffset); _this._updatePointer$1(7 - bits); bitOffset = a1; currIndex = currIndex0; a0 = bitOffset; } else if (code === 11) { if (_this._nextLesserThan8Bits$1(3) !== 7) throw A.wrapException(A.ImageException$("TIFFFaxDecoder5")); for (zeros = 0, exit = false; !exit;) { for (; _this._nextLesserThan8Bits$1(1) !== 1;) ++zeros; if (zeros > 5) { zeros -= 6; if (!isWhite && zeros > 0) { currIndex0 = currIndex + 1; B.JSArray_methods.$indexSet(temp, currIndex, bitOffset); currIndex = currIndex0; } bitOffset += zeros; if (zeros > 0) isWhite = true; if (_this._nextLesserThan8Bits$1(1) === 0) { if (!isWhite) { currIndex0 = currIndex + 1; B.JSArray_methods.$indexSet(temp, currIndex, bitOffset); currIndex = currIndex0; } isWhite = true; } else { if (isWhite) { currIndex0 = currIndex + 1; B.JSArray_methods.$indexSet(temp, currIndex, bitOffset); currIndex = currIndex0; } isWhite = false; } exit = true; } if (zeros === 5) { if (!isWhite) { currIndex0 = currIndex + 1; B.JSArray_methods.$indexSet(temp, currIndex, bitOffset); currIndex = currIndex0; } bitOffset += zeros; isWhite = true; } else { bitOffset += zeros; currIndex0 = currIndex + 1; B.JSArray_methods.$indexSet(temp, currIndex, bitOffset); _this._setToBlack$4(out, lineOffset, bitOffset, 1); ++bitOffset; currIndex = currIndex0; isWhite = false; } } } else throw A.wrapException(A.ImageException$("TIFFFaxDecoder5 " + code)); } B.JSArray_methods.$indexSet(temp, currIndex, bitOffset); _this.changingElemSize = currIndex + 1; lineOffset += scanlineStride; } }, _decodeWhiteCodeWord$0() { var runLength, isWhite, current, entry, bits, t1, _this = this; for (runLength = 0, isWhite = true; isWhite;) { current = _this._nextNBits$1(10); if (!(current < 1024)) return A.ioore(B.List_VSP, current); entry = B.List_VSP[current]; bits = B.JSInt_methods._shrOtherPositive$1(entry, 1) & 15; if (bits === 12) { current = (current << 2 & 12 | _this._nextLesserThan8Bits$1(2)) >>> 0; if (!(current < 16)) return A.ioore(B.List_MEg, current); entry = B.List_MEg[current]; t1 = B.JSInt_methods._shrOtherPositive$1(entry, 1); runLength += B.JSInt_methods._shrOtherPositive$1(entry, 4) & 4095; _this._updatePointer$1(4 - (t1 & 7)); } else if (bits === 0) throw A.wrapException(A.ImageException$("TIFFFaxDecoder0")); else if (bits === 15) throw A.wrapException(A.ImageException$("TIFFFaxDecoder1")); else { runLength += B.JSInt_methods._shrOtherPositive$1(entry, 5) & 2047; _this._updatePointer$1(10 - bits); if ((entry & 1) === 0) isWhite = false; } } return runLength; }, _decodeBlackCodeWord$0() { var runLength, isWhite, current, entry, code, bits, t1, _this = this; for (runLength = 0, isWhite = false; !isWhite;) { current = _this._nextLesserThan8Bits$1(4); if (!(current < 16)) return A.ioore(B.List_89P, current); entry = B.List_89P[current]; code = entry >>> 5 & 2047; if (code === 100) { current = _this._nextNBits$1(9); if (!(current < 512)) return A.ioore(B.List_nLG, current); entry = B.List_nLG[current]; bits = B.JSInt_methods._shrOtherPositive$1(entry, 1) & 15; t1 = B.JSInt_methods._shrOtherPositive$1(entry, 5); if (bits === 12) { _this._updatePointer$1(5); current = _this._nextLesserThan8Bits$1(4); if (!(current < 16)) return A.ioore(B.List_MEg, current); entry = B.List_MEg[current]; t1 = B.JSInt_methods._shrOtherPositive$1(entry, 1); runLength += B.JSInt_methods._shrOtherPositive$1(entry, 4) & 4095; _this._updatePointer$1(4 - (t1 & 7)); } else if (bits === 15) throw A.wrapException(A.ImageException$("TIFFFaxDecoder2")); else { runLength += t1 & 2047; _this._updatePointer$1(9 - bits); if ((entry & 1) === 0) isWhite = true; } } else { if (code === 200) { current = _this._nextLesserThan8Bits$1(2); if (!(current < 4)) return A.ioore(B.List_292_260_226_226, current); entry = B.List_292_260_226_226[current]; runLength += entry >>> 5 & 2047; _this._updatePointer$1(2 - (entry >>> 1 & 15)); } else { runLength += code; _this._updatePointer$1(4 - (entry >>> 1 & 15)); } isWhite = true; } } return runLength; }, _readEOL$0() { var bitsLeft, n, _this = this, _s15_ = "TIFFFaxDecoder8", t1 = _this.fillBits; if (t1 === 0) { if (_this._nextNBits$1(12) !== 1) throw A.wrapException(A.ImageException$("TIFFFaxDecoder6")); } else if (t1 === 1) { t1 = _this.bitPointer; t1.toString; bitsLeft = 8 - t1; if (_this._nextNBits$1(bitsLeft) !== 0) throw A.wrapException(A.ImageException$(_s15_)); if (bitsLeft < 4) if (_this._nextNBits$1(8) !== 0) throw A.wrapException(A.ImageException$(_s15_)); for (; n = _this._nextNBits$1(8), n !== 1;) if (n !== 0) throw A.wrapException(A.ImageException$(_s15_)); } if (_this.oneD === 0) return 1; else return _this._nextLesserThan8Bits$1(1); }, _getNextChangingElement$3(a0, isWhite, ret) { var pce, ces, t1, start, i, t2, _this = this; type$.List_nullable_int._as(ret); pce = _this.prevChangingElems; ces = _this.changingElemSize; t1 = _this.lastChangingElement; start = t1 > 0 ? t1 - 1 : 0; start = isWhite ? (start & 4294967294) >>> 0 : (start | 1) >>> 0; for (t1 = pce.length, i = start; i < ces; i += 2) { if (!(i < t1)) return A.ioore(pce, i); t2 = pce[i]; t2.toString; a0.toString; if (t2 > a0) { _this.lastChangingElement = i; B.JSArray_methods.$indexSet(ret, 0, t2); break; } } t2 = i + 1; if (t2 < ces) { if (!(t2 < t1)) return A.ioore(pce, t2); B.JSArray_methods.$indexSet(ret, 1, pce[t2]); } }, _setToBlack$4(buffer, lineOffset, bitOffset, numBits) { var maskVal, t1, t2, val, byteNum0, bitNum = 8 * lineOffset + A._asInt(bitOffset), lastBit = bitNum + numBits, byteNum = B.JSInt_methods._shrOtherPositive$1(bitNum, 3), shift = bitNum & 7; if (shift > 0) { maskVal = B.JSInt_methods.$shl(1, 7 - shift); t1 = buffer.buffer; t2 = buffer.offset + byteNum; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); val = t1[t2]; while (true) { if (!(maskVal > 0 && bitNum < lastBit)) break; val = (val | maskVal) >>> 0; maskVal = maskVal >>> 1; ++bitNum; } buffer.$indexSet(0, byteNum, val); } byteNum = B.JSInt_methods._shrOtherPositive$1(bitNum, 3); for (t1 = lastBit - 7; bitNum < t1; byteNum = byteNum0) { byteNum0 = byteNum + 1; J.$indexSet$ax(buffer.buffer, buffer.offset + byteNum, 255); bitNum += 8; } for (; bitNum < lastBit;) { byteNum = B.JSInt_methods._shrOtherPositive$1(bitNum, 3); t1 = buffer.buffer; t2 = buffer.offset + byteNum; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); J.$indexSet$ax(t1, t2, (t1[t2] | B.JSInt_methods.$shl(1, 7 - (bitNum & 7))) >>> 0); ++bitNum; } }, _nextNBits$1(bitsToGet) { var t2, b, next, next2next, t3, bitsLeft, bitsFromNextByte, bitsFromNext2NextByte, bitsFromNextByte0, i1, i2, _this = this, _s4_ = "data", t1 = A._lateReadCheck(_this.__TiffFaxDecoder_data, _s4_), l = t1.end - t1.offset - 1, bp = _this.bytePointer; t1 = _this.fillOrder; if (t1 === 1) { t1 = A._lateReadCheck(_this.__TiffFaxDecoder_data, _s4_); bp.toString; t2 = t1.buffer; t1 = t1.offset + bp; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); b = t2[t1]; if (bp === l) { next = 0; next2next = 0; } else { t1 = bp + 1; t2 = _this.__TiffFaxDecoder_data; if (t1 === l) { t2 = A._lateReadCheck(t2, _s4_); t3 = t2.buffer; t1 = t2.offset + t1; if (!(t1 >= 0 && t1 < t3.length)) return A.ioore(t3, t1); next = t3[t1]; next2next = 0; } else { t2 = A._lateReadCheck(t2, _s4_); t3 = t2.buffer; t1 = t2.offset + t1; if (!(t1 >= 0 && t1 < t3.length)) return A.ioore(t3, t1); next = t3[t1]; t1 = A._lateReadCheck(_this.__TiffFaxDecoder_data, _s4_); t3 = t1.buffer; t1 = t1.offset + (bp + 2); if (!(t1 >= 0 && t1 < t3.length)) return A.ioore(t3, t1); next2next = t3[t1]; } } } else if (t1 === 2) { t1 = A._lateReadCheck(_this.__TiffFaxDecoder_data, _s4_); bp.toString; t2 = t1.buffer; t1 = t1.offset + bp; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); b = B.List_VvJ[t2[t1] & 255]; if (bp === l) { next = 0; next2next = 0; } else { t1 = bp + 1; t2 = _this.__TiffFaxDecoder_data; if (t1 === l) { t2 = A._lateReadCheck(t2, _s4_); t3 = t2.buffer; t1 = t2.offset + t1; if (!(t1 >= 0 && t1 < t3.length)) return A.ioore(t3, t1); next = B.List_VvJ[t3[t1] & 255]; next2next = 0; } else { t2 = A._lateReadCheck(t2, _s4_); t3 = t2.buffer; t1 = t2.offset + t1; if (!(t1 >= 0 && t1 < t3.length)) return A.ioore(t3, t1); next = B.List_VvJ[t3[t1] & 255]; t1 = A._lateReadCheck(_this.__TiffFaxDecoder_data, _s4_); t3 = t1.buffer; t1 = t1.offset + (bp + 2); if (!(t1 >= 0 && t1 < t3.length)) return A.ioore(t3, t1); next2next = B.List_VvJ[t3[t1] & 255]; } } } else throw A.wrapException(A.ImageException$("TIFFFaxDecoder7")); t1 = _this.bitPointer; t1.toString; bitsLeft = 8 - t1; bitsFromNextByte = bitsToGet - bitsLeft; if (bitsFromNextByte > 8) { bitsFromNext2NextByte = bitsFromNextByte - 8; bitsFromNextByte0 = 8; } else { bitsFromNextByte0 = bitsFromNextByte; bitsFromNext2NextByte = 0; } t1 = _this.bytePointer; t1.toString; t1 = _this.bytePointer = t1 + 1; if (!(bitsLeft >= 0 && bitsLeft < 9)) return A.ioore(B.List_knt, bitsLeft); i1 = B.JSInt_methods.$shl(b & B.List_knt[bitsLeft], bitsFromNextByte); if (!(bitsFromNextByte0 >= 0)) return A.ioore(B.List_knt0, bitsFromNextByte0); i2 = B.JSInt_methods._shrReceiverPositive$1(next & B.List_knt0[bitsFromNextByte0], 8 - bitsFromNextByte0); if (bitsFromNext2NextByte !== 0) { i2 = B.JSInt_methods.$shl(i2, bitsFromNext2NextByte); if (!(bitsFromNext2NextByte < 9)) return A.ioore(B.List_knt0, bitsFromNext2NextByte); i2 |= B.JSInt_methods._shrReceiverPositive$1(next2next & B.List_knt0[bitsFromNext2NextByte], 8 - bitsFromNext2NextByte); _this.bytePointer = t1 + 1; _this.bitPointer = bitsFromNext2NextByte; } else if (bitsFromNextByte0 === 8) { _this.bitPointer = 0; _this.bytePointer = t1 + 1; } else _this.bitPointer = bitsFromNextByte0; return (i1 | i2) >>> 0; }, _nextLesserThan8Bits$1(bitsToGet) { var t2, b, next, bitsLeft, bitsFromNextByte, shift, i1, _this = this, _s4_ = "data", t1 = A._lateReadCheck(_this.__TiffFaxDecoder_data, _s4_), l = t1.end - t1.offset - 1, bp = _this.bytePointer; t1 = _this.fillOrder; if (t1 === 1) { t1 = A._lateReadCheck(_this.__TiffFaxDecoder_data, _s4_); bp.toString; t2 = t1.buffer; t1 = t1.offset + bp; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); b = t2[t1]; if (bp === l) next = 0; else { t1 = A._lateReadCheck(_this.__TiffFaxDecoder_data, _s4_); t2 = t1.buffer; t1 = t1.offset + (bp + 1); if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); next = t2[t1]; } } else if (t1 === 2) { t1 = A._lateReadCheck(_this.__TiffFaxDecoder_data, _s4_); bp.toString; t2 = t1.buffer; t1 = t1.offset + bp; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); b = B.List_VvJ[t2[t1] & 255]; if (bp === l) next = 0; else { t1 = A._lateReadCheck(_this.__TiffFaxDecoder_data, _s4_); t2 = t1.buffer; t1 = t1.offset + (bp + 1); if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); next = B.List_VvJ[t2[t1] & 255]; } } else throw A.wrapException(A.ImageException$("TIFFFaxDecoder7")); t1 = _this.bitPointer; t1.toString; bitsLeft = 8 - t1; bitsFromNextByte = bitsToGet - bitsLeft; shift = bitsLeft - bitsToGet; if (shift >= 0) { if (!(bitsLeft >= 0 && bitsLeft < 9)) return A.ioore(B.List_knt, bitsLeft); i1 = B.JSInt_methods._shrReceiverPositive$1(b & B.List_knt[bitsLeft], shift); t1 += bitsToGet; _this.bitPointer = t1; if (t1 === 8) { _this.bitPointer = 0; t1 = _this.bytePointer; t1.toString; _this.bytePointer = t1 + 1; } } else { if (!(bitsLeft >= 0 && bitsLeft < 9)) return A.ioore(B.List_knt, bitsLeft); i1 = B.JSInt_methods.$shl(b & B.List_knt[bitsLeft], -shift); if (!(bitsFromNextByte >= 0 && bitsFromNextByte < 9)) return A.ioore(B.List_knt0, bitsFromNextByte); i1 = (i1 | B.JSInt_methods._shrReceiverPositive$1(next & B.List_knt0[bitsFromNextByte], 8 - bitsFromNextByte)) >>> 0; t1 = _this.bytePointer; t1.toString; _this.bytePointer = t1 + 1; _this.bitPointer = bitsFromNextByte; } return i1; }, _updatePointer$1(bitsToMoveBack) { var i, _this = this, t1 = _this.bitPointer; t1.toString; i = t1 - bitsToMoveBack; if (i < 0) { t1 = _this.bytePointer; t1.toString; _this.bytePointer = t1 - 1; _this.bitPointer = 8 + i; } else _this.bitPointer = i; }, set$prevChangingElems(prevChangingElems) { this.prevChangingElems = type$.nullable_List_nullable_int._as(prevChangingElems); }, set$currChangingElems(currChangingElems) { this.currChangingElems = type$.nullable_List_nullable_int._as(currChangingElems); } }; A.TiffImage.prototype = { TiffImage$1(p) { var t1, i, tag, type, numValues, entry, t2, len, l, t3, v, _this = this, p3 = A.InputBuffer$from(p, null, 0), numDirEntries = p.readUint16$0(); for (t1 = _this.tags, i = 0; i < numDirEntries; ++i) { tag = p.readUint16$0(); type = p.readUint16$0(); numValues = p.readUint32$0(); entry = new A.TiffEntry(tag, type, numValues, p3); if (type < 13 && type > 0) { if (!(type < 14)) return A.ioore(B.List_yYQ, type); t2 = B.List_yYQ[type]; } else t2 = 0; if (numValues * t2 > 4) entry.valueOffset = p.readUint32$0(); else { t2 = p.offset; entry.valueOffset = t2; p.offset = t2 + 4; } t1.$indexSet(0, tag, entry); if (tag === 256) { t2 = entry.valueOffset; t2.toString; p3.offset = t2; _this.width = entry._readValue$0(); } else if (tag === 257) { t2 = entry.valueOffset; t2.toString; p3.offset = t2; _this.height = entry._readValue$0(); } else if (tag === 262) { t2 = entry.valueOffset; t2.toString; p3.offset = t2; _this.photometricType = entry._readValue$0(); } else if (tag === 259) { t2 = entry.valueOffset; t2.toString; p3.offset = t2; _this.compression = entry._readValue$0(); } else if (tag === 258) { t2 = entry.valueOffset; t2.toString; p3.offset = t2; _this.bitsPerSample = entry._readValue$0(); } else if (tag === 277) { t2 = entry.valueOffset; t2.toString; p3.offset = t2; _this.samplesPerPixel = entry._readValue$0(); } else if (tag === 317) { t2 = entry.valueOffset; t2.toString; p3.offset = t2; _this.predictor = entry._readValue$0(); } else if (tag === 339) { t2 = entry.valueOffset; t2.toString; p3.offset = t2; _this.sampleFormat = entry._readValue$0(); } else if (tag === 320) { _this.set$colorMap(entry.readValues$0()); _this.__TiffImage_colorMapRed = 0; t2 = _this.colorMap.length / 3 | 0; _this.__TiffImage_colorMapGreen = t2; _this.__TiffImage_colorMapBlue = A._lateReadCheck(t2, "colorMapGreen") * 2; } } if (_this.width === 0 || _this.height === 0) return; t2 = _this.colorMap; if (t2 != null && _this.bitsPerSample === 8) for (len = t2.length, i = 0; i < len; ++i) { t2 = _this.colorMap; if (!(i < t2.length)) return A.ioore(t2, i); B.JSArray_methods.$indexSet(t2, i, B.JSInt_methods._shrOtherPositive$1(t2[i], 8)); } if (_this.photometricType === 0) _this.isWhiteZero = true; if (t1.containsKey$1(0, 324)) { _this.tileWidth = _this._readTag$1(322); _this.tileHeight = _this._readTag$1(323); _this.set$tileOffsets(_this._readTagList$1(324)); _this.set$tileByteCounts(_this._readTagList$1(325)); } else { _this.tileWidth = _this._readTag$2(322, _this.width); if (!t1.containsKey$1(0, 278)) _this.tileHeight = _this._readTag$2(323, _this.height); else { l = _this._readTag$1(278); if (l === -1) _this.tileHeight = _this.height; else _this.tileHeight = l; } _this.set$tileOffsets(_this._readTagList$1(273)); _this.set$tileByteCounts(_this._readTagList$1(279)); } t2 = _this.width; t3 = _this.tileWidth; _this.__TiffImage_tilesX = B.JSInt_methods.$tdiv(t2 + t3 - 1, t3); t3 = _this.height; t2 = _this.tileHeight; _this.__TiffImage_tilesY = B.JSInt_methods.$tdiv(t3 + t2 - 1, t2); _this.fillOrder = _this._readTag$2(266, 1); _this.t4Options = _this._readTag$1(292); _this.t6Options = _this._readTag$1(293); _this._readTag$1(338); switch (_this.photometricType) { case 0: case 1: t1 = _this.bitsPerSample; if (t1 === 1 && _this.samplesPerPixel === 1) _this.imageType = 0; else if (t1 === 4 && _this.samplesPerPixel === 1) _this.imageType = 1; else if (B.JSInt_methods.$mod(t1, 8) === 0) { t1 = _this.samplesPerPixel; if (t1 === 1) _this.imageType = 2; else if (t1 === 2) _this.imageType = 3; else _this.imageType = 8; } break; case 2: if (B.JSInt_methods.$mod(_this.bitsPerSample, 8) === 0) { t1 = _this.samplesPerPixel; if (t1 === 3) _this.imageType = 5; else if (t1 === 4) _this.imageType = 6; else _this.imageType = 8; } break; case 3: if (_this.samplesPerPixel === 1) { t1 = _this.bitsPerSample; t1 = t1 === 4 || t1 === 8 || t1 === 16; } else t1 = false; if (t1) _this.imageType = 4; break; case 4: if (_this.bitsPerSample === 1 && _this.samplesPerPixel === 1) _this.imageType = 0; break; case 6: if (_this.compression === 7 && _this.bitsPerSample === 8 && _this.samplesPerPixel === 3) _this.imageType = 5; else { if (t1.containsKey$1(0, 530)) { v = t1.$index(0, 530).readValues$0(); t1 = v.length; if (0 >= t1) return A.ioore(v, 0); t2 = _this.__TiffImage_chromaSubH = v[0]; if (1 >= t1) return A.ioore(v, 1); _this.__TiffImage_chromaSubV = v[1]; t1 = t2; } else t1 = _this.__TiffImage_chromaSubV = _this.__TiffImage_chromaSubH = 2; if (A._lateReadCheck(t1, "chromaSubH") * A._lateReadCheck(_this.__TiffImage_chromaSubV, "chromaSubV") === 1) _this.imageType = 8; else if (_this.bitsPerSample === 8 && _this.samplesPerPixel === 3) _this.imageType = 7; } break; default: if (B.JSInt_methods.$mod(_this.bitsPerSample, 8) === 0) _this.imageType = 8; break; } }, decode$1(_, p) { var tileY, ti, tileX, t1, _this = this; _this.image = A.Image$(_this.width, _this.height, B.Channels_1, null, null); for (tileY = 0, ti = 0; tileY < A._lateReadCheck(_this.__TiffImage_tilesY, "tilesY"); ++tileY) for (tileX = 0; tileX < A._lateReadCheck(_this.__TiffImage_tilesX, "tilesX"); ++tileX, ++ti) _this._decodeTile$3(p, tileX, tileY); t1 = _this.image; t1.toString; return t1; }, _decodeTile$3(p, tileX, tileY) { var byteCount, bdata, decoder, e, tileIndex, t1, outX, t2, outY, t3, bytesInThisTile, exception, j, i, count, len, t4, t5, t6, tile, py, y, px, x, sample, gray, c, alpha, r, g, b, ri, gi, bi, a, _this = this, _null = null, _s11_ = "colorMapRed", _s13_ = "colorMapGreen", _s12_ = "colorMapBlue"; if (_this.imageType === 0) { _this._decodeBilevelTile$3(p, tileX, tileY); return; } tileIndex = tileY * A._lateReadCheck(_this.__TiffImage_tilesX, "tilesX") + tileX; t1 = _this.tileOffsets; if (!(tileIndex >= 0 && tileIndex < t1.length)) return A.ioore(t1, tileIndex); p.offset = t1[tileIndex]; t1 = _this.tileWidth; outX = tileX * t1; t2 = _this.tileHeight; outY = tileY * t2; t3 = _this.tileByteCounts; if (!(tileIndex < t3.length)) return A.ioore(t3, tileIndex); byteCount = t3[tileIndex]; bytesInThisTile = t1 * t2 * _this.samplesPerPixel; t1 = _this.bitsPerSample; t2 = t1 === 16; if (t2) bytesInThisTile *= 2; else if (t1 === 32) bytesInThisTile *= 4; bdata = null; if (t1 === 8 || t2 || t1 === 32 || t1 === 64) { t1 = _this.compression; if (t1 === 1) bdata = p; else if (t1 === 5) { bdata = A.InputBuffer$(new Uint8Array(bytesInThisTile), false, _null, 0); decoder = A.LzwDecoder$(); try { J.decode$2$z(decoder, A.InputBuffer$from(p, byteCount, 0), bdata.buffer); } catch (exception) { e = A.unwrapException(exception); A.print(e); } if (_this.predictor === 2) for (j = 0; j < _this.tileHeight; ++j) { i = _this.samplesPerPixel; t1 = _this.tileWidth; count = i * (j * t1 + 1); for (len = t1 * i; i < len; ++i) { t1 = bdata; t2 = t1.buffer; t1 = t1.offset + count; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); t3 = t2[t1]; t4 = bdata; t5 = _this.samplesPerPixel; t6 = t4.buffer; t5 = t4.offset + (count - t5); if (!(t5 >= 0 && t5 < t6.length)) return A.ioore(t6, t5); J.$indexSet$ax(t2, t1, t3 + t6[t5]); ++count; } } } else if (t1 === 32773) { bdata = A.InputBuffer$(new Uint8Array(bytesInThisTile), false, _null, 0); _this._decodePackbits$3(p, bytesInThisTile, bdata.buffer); } else if (t1 === 32946) { t1 = A.Inflate$(p.toList$2(0, 0, byteCount)).output; bdata = A.InputBuffer$(type$.List_int._as(A.NativeUint8List_NativeUint8List$view(t1._output_stream$_buffer.buffer, 0, t1.length)), false, _null, 0); } else if (t1 === 8) bdata = A.InputBuffer$(B.C__ZLibDecoder.decodeBuffer$2$verify(A.InputStream$(type$.List_int._as(p.toList$2(0, 0, byteCount)), 1, _null, 0), false), false, _null, 0); else if (t1 === 6) { if (_this.image == null) _this.image = A.Image$(_this.width, _this.height, B.Channels_1, _null, _null); tile = new A.JpegDecoder().decodeImage$1(p.toList$2(0, 0, byteCount)); t1 = _this.image; t1.toString; _this._jpegToImage$6(tile, t1, outX, outY, _this.tileWidth, _this.tileHeight); if (_this.hdrImage != null) { t1 = _this.image; t1.toString; t2 = new A.HdrImage(A.LinkedHashMap_LinkedHashMap$_empty(type$.nullable_String, type$.HdrSlice)); t2.HdrImage$fromImage$3$bitsPerSample$type(t1, 16, 3); _this.hdrImage = t2; } return; } else throw A.wrapException(A.ImageException$("Unsupported Compression Type: " + t1)); py = outY; y = 0; while (true) { if (!(y < _this.tileHeight && py < _this.height)) break; px = outX; x = 0; while (true) { if (!(x < _this.tileWidth && px < _this.width)) break; t1 = _this.samplesPerPixel; if (t1 === 1) { t1 = _this.sampleFormat; if (t1 === 3) { t1 = _this.bitsPerSample; if (t1 === 32) { t1 = bdata.readUint32$0(); $.$get$__uint32()[0] = t1; t1 = $.$get$__uint32ToFloat32(); if (0 >= t1.length) return A.ioore(t1, 0); sample = t1[0]; } else if (t1 === 64) sample = bdata.readFloat64$0(); else if (t1 === 16) { t1 = bdata.readUint16$0(); if ($.Half__toFloatFloat32 == null) A.Half__initialize(); t2 = $.Half__toFloatFloat32; if (!(t1 < t2.length)) return A.ioore(t2, t1); sample = t2[t1]; } else sample = 0; t1 = _this.hdrImage; if (t1 != null) t1.setRed$3(px, py, sample); if (_this.image != null) { gray = B.JSNumber_methods.toInt$0(B.JSNumber_methods.clamp$2(sample * 255, 0, 255)); if (_this.photometricType === 3 && _this.colorMap != null) { t1 = _this.colorMap; t1.toString; t2 = A._lateReadCheck(_this.__TiffImage_colorMapRed, _s11_) + gray; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); t2 = t1[t2]; t1 = _this.colorMap; t1.toString; t3 = A._lateReadCheck(_this.__TiffImage_colorMapGreen, _s13_) + gray; if (!(t3 >= 0 && t3 < t1.length)) return A.ioore(t1, t3); t3 = t1[t3]; t1 = _this.colorMap; t1.toString; t4 = A._lateReadCheck(_this.__TiffImage_colorMapBlue, _s12_) + gray; if (!(t4 >= 0 && t4 < t1.length)) return A.ioore(t1, t4); t4 = t1[t4]; c = (B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(255, 0, 255)) << 24 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(t4, 0, 255)) << 16 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(t3, 0, 255)) << 8 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(t2, 0, 255))) >>> 0; } else c = (B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(255, 0, 255)) << 24 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(gray, 0, 255)) << 16 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(gray, 0, 255)) << 8 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(gray, 0, 255))) >>> 0; t1 = _this.image; t2 = t1.data; t1 = py * t1.width + px; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); t2[t1] = c; } } else { t2 = _this.bitsPerSample; if (t2 === 8) if (t1 === 2) { t1 = bdata; t2 = t1.buffer; t1 = t1.offset++; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); t1 = t2[t1]; $.$get$__uint8()[0] = t1; t1 = $.$get$__uint8ToInt8(); if (0 >= t1.length) return A.ioore(t1, 0); gray = t1[0]; } else { t1 = bdata; t2 = t1.buffer; t1 = t1.offset++; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); gray = t2[t1]; } else if (t2 === 16) if (t1 === 2) { t1 = bdata.readUint16$0(); $.$get$__uint16()[0] = t1; t1 = $.$get$__uint16ToInt16(); if (0 >= t1.length) return A.ioore(t1, 0); gray = t1[0]; } else gray = bdata.readUint16$0(); else if (t2 === 32) if (t1 === 2) { t1 = bdata.readUint32$0(); $.$get$__uint32()[0] = t1; t1 = $.$get$__uint32ToInt32(); if (0 >= t1.length) return A.ioore(t1, 0); gray = t1[0]; } else gray = bdata.readUint32$0(); else gray = 0; t1 = _this.hdrImage; if (t1 != null) t1.setRed$3(px, py, gray); if (_this.image != null) { t1 = _this.bitsPerSample; if (t1 === 16) gray = B.JSInt_methods._shrOtherPositive$1(gray, 8); else if (t1 === 32) gray = B.JSInt_methods._shrOtherPositive$1(gray, 24); t1 = _this.photometricType; if (t1 === 0) gray = 255 - gray; if (t1 === 3 && _this.colorMap != null) { t1 = _this.colorMap; t1.toString; t2 = A._lateReadCheck(_this.__TiffImage_colorMapRed, _s11_) + gray; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); t2 = t1[t2]; t1 = _this.colorMap; t1.toString; t3 = A._lateReadCheck(_this.__TiffImage_colorMapGreen, _s13_) + gray; if (!(t3 >= 0 && t3 < t1.length)) return A.ioore(t1, t3); t3 = t1[t3]; t1 = _this.colorMap; t1.toString; t4 = A._lateReadCheck(_this.__TiffImage_colorMapBlue, _s12_) + gray; if (!(t4 >= 0 && t4 < t1.length)) return A.ioore(t1, t4); t4 = t1[t4]; c = (B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(255, 0, 255)) << 24 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(t4, 0, 255)) << 16 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(t3, 0, 255)) << 8 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(t2, 0, 255))) >>> 0; } else c = (B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(255, 0, 255)) << 24 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(gray, 0, 255)) << 16 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(gray, 0, 255)) << 8 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(gray, 0, 255))) >>> 0; t1 = _this.image; t2 = t1.data; t1 = py * t1.width + px; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); t2[t1] = c; } } } else if (t1 === 2) { t1 = _this.bitsPerSample; if (t1 === 8) { t1 = _this.sampleFormat === 2; if (t1) { t2 = bdata; t3 = t2.buffer; t2 = t2.offset++; if (!(t2 >= 0 && t2 < t3.length)) return A.ioore(t3, t2); t2 = t3[t2]; $.$get$__uint8()[0] = t2; t2 = $.$get$__uint8ToInt8(); if (0 >= t2.length) return A.ioore(t2, 0); gray = t2[0]; } else { t2 = bdata; t3 = t2.buffer; t2 = t2.offset++; if (!(t2 >= 0 && t2 < t3.length)) return A.ioore(t3, t2); gray = t3[t2]; } if (t1) { t1 = bdata; t2 = t1.buffer; t1 = t1.offset++; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); t1 = t2[t1]; $.$get$__uint8()[0] = t1; t1 = $.$get$__uint8ToInt8(); if (0 >= t1.length) return A.ioore(t1, 0); alpha = t1[0]; } else { t1 = bdata; t2 = t1.buffer; t1 = t1.offset++; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); alpha = t2[t1]; } } else if (t1 === 16) { if (_this.sampleFormat === 2) { t1 = bdata.readUint16$0(); $.$get$__uint16()[0] = t1; t1 = $.$get$__uint16ToInt16(); if (0 >= t1.length) return A.ioore(t1, 0); gray = t1[0]; } else gray = bdata.readUint16$0(); if (_this.sampleFormat === 2) { t1 = bdata.readUint16$0(); $.$get$__uint16()[0] = t1; t1 = $.$get$__uint16ToInt16(); if (0 >= t1.length) return A.ioore(t1, 0); alpha = t1[0]; } else alpha = bdata.readUint16$0(); } else if (t1 === 32) { if (_this.sampleFormat === 2) { t1 = bdata.readUint32$0(); $.$get$__uint32()[0] = t1; t1 = $.$get$__uint32ToInt32(); if (0 >= t1.length) return A.ioore(t1, 0); gray = t1[0]; } else gray = bdata.readUint32$0(); if (_this.sampleFormat === 2) { t1 = bdata.readUint32$0(); $.$get$__uint32()[0] = t1; t1 = $.$get$__uint32ToInt32(); if (0 >= t1.length) return A.ioore(t1, 0); alpha = t1[0]; } else alpha = bdata.readUint32$0(); } else { gray = 0; alpha = 0; } t1 = _this.hdrImage; if (t1 != null) { t1.setRed$3(px, py, gray); _this.hdrImage.setGreen$3(px, py, alpha); } if (_this.image != null) { t1 = _this.bitsPerSample; t2 = t1 === 16; if (t2) gray = B.JSInt_methods._shrOtherPositive$1(gray, 8); else if (t1 === 32) gray = B.JSInt_methods._shrOtherPositive$1(gray, 24); if (t2) alpha = B.JSInt_methods._shrOtherPositive$1(alpha, 8); else if (t1 === 32) alpha = B.JSInt_methods._shrOtherPositive$1(alpha, 24); t1 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(alpha, 0, 255)); t2 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(gray, 0, 255)); t3 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(gray, 0, 255)); t4 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(gray, 0, 255)); t5 = _this.image; t6 = t5.data; t5 = py * t5.width + px; if (!(t5 >= 0 && t5 < t6.length)) return A.ioore(t6, t5); t6[t5] = (t1 << 24 | t2 << 16 | t3 << 8 | t4) >>> 0; } } else if (t1 === 3) { t1 = _this.sampleFormat; if (t1 === 3) { t1 = _this.bitsPerSample; if (t1 === 32) { t1 = bdata.readUint32$0(); t2 = $.$get$__uint32(); t2[0] = t1; t1 = $.$get$__uint32ToFloat32(); if (0 >= t1.length) return A.ioore(t1, 0); r = t1[0]; t2[0] = bdata.readUint32$0(); g = t1[0]; t2[0] = bdata.readUint32$0(); b = t1[0]; } else if (t1 === 64) { r = bdata.readFloat64$0(); g = 0; b = 0; } else if (t1 === 16) { t1 = bdata.readUint16$0(); if ($.Half__toFloatFloat32 == null) A.Half__initialize(); t2 = $.Half__toFloatFloat32; if (!(t1 < t2.length)) return A.ioore(t2, t1); r = t2[t1]; t1 = bdata.readUint16$0(); if ($.Half__toFloatFloat32 == null) A.Half__initialize(); t2 = $.Half__toFloatFloat32; if (!(t1 < t2.length)) return A.ioore(t2, t1); g = t2[t1]; t1 = bdata.readUint16$0(); if ($.Half__toFloatFloat32 == null) A.Half__initialize(); t2 = $.Half__toFloatFloat32; if (!(t1 < t2.length)) return A.ioore(t2, t1); b = t2[t1]; } else { r = 0; g = 0; b = 0; } t1 = _this.hdrImage; if (t1 != null) { t1.setRed$3(px, py, r); _this.hdrImage.setGreen$3(px, py, g); _this.hdrImage.setBlue$3(px, py, b); } if (_this.image != null) { ri = B.JSNumber_methods.toInt$0(B.JSNumber_methods.clamp$2(r * 255, 0, 255)); gi = B.JSNumber_methods.toInt$0(B.JSNumber_methods.clamp$2(g * 255, 0, 255)); bi = B.JSNumber_methods.toInt$0(B.JSNumber_methods.clamp$2(b * 255, 0, 255)); t1 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(255, 0, 255)); t2 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(bi, 0, 255)); t3 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(gi, 0, 255)); t4 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(ri, 0, 255)); t5 = _this.image; t6 = t5.data; t5 = py * t5.width + px; if (!(t5 >= 0 && t5 < t6.length)) return A.ioore(t6, t5); t6[t5] = (t1 << 24 | t2 << 16 | t3 << 8 | t4) >>> 0; } } else { t2 = _this.bitsPerSample; if (t2 === 8) { t1 = t1 === 2; if (t1) { t2 = bdata; t3 = t2.buffer; t2 = t2.offset++; if (!(t2 >= 0 && t2 < t3.length)) return A.ioore(t3, t2); t2 = t3[t2]; $.$get$__uint8()[0] = t2; t2 = $.$get$__uint8ToInt8(); if (0 >= t2.length) return A.ioore(t2, 0); r = t2[0]; } else { t2 = bdata; t3 = t2.buffer; t2 = t2.offset++; if (!(t2 >= 0 && t2 < t3.length)) return A.ioore(t3, t2); r = t3[t2]; } if (t1) { t2 = bdata; t3 = t2.buffer; t2 = t2.offset++; if (!(t2 >= 0 && t2 < t3.length)) return A.ioore(t3, t2); t2 = t3[t2]; $.$get$__uint8()[0] = t2; t2 = $.$get$__uint8ToInt8(); if (0 >= t2.length) return A.ioore(t2, 0); g = t2[0]; } else { t2 = bdata; t3 = t2.buffer; t2 = t2.offset++; if (!(t2 >= 0 && t2 < t3.length)) return A.ioore(t3, t2); g = t3[t2]; } if (t1) { t1 = bdata; t2 = t1.buffer; t1 = t1.offset++; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); t1 = t2[t1]; $.$get$__uint8()[0] = t1; t1 = $.$get$__uint8ToInt8(); if (0 >= t1.length) return A.ioore(t1, 0); b = t1[0]; } else { t1 = bdata; t2 = t1.buffer; t1 = t1.offset++; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); b = t2[t1]; } } else if (t2 === 16) { if (t1 === 2) { t1 = bdata.readUint16$0(); $.$get$__uint16()[0] = t1; t1 = $.$get$__uint16ToInt16(); if (0 >= t1.length) return A.ioore(t1, 0); r = t1[0]; } else r = bdata.readUint16$0(); if (_this.sampleFormat === 2) { t1 = bdata.readUint16$0(); $.$get$__uint16()[0] = t1; t1 = $.$get$__uint16ToInt16(); if (0 >= t1.length) return A.ioore(t1, 0); g = t1[0]; } else g = bdata.readUint16$0(); if (_this.sampleFormat === 2) { t1 = bdata.readUint16$0(); $.$get$__uint16()[0] = t1; t1 = $.$get$__uint16ToInt16(); if (0 >= t1.length) return A.ioore(t1, 0); b = t1[0]; } else b = bdata.readUint16$0(); } else if (t2 === 32) { if (t1 === 2) { t1 = bdata.readUint32$0(); $.$get$__uint32()[0] = t1; t1 = $.$get$__uint32ToInt32(); if (0 >= t1.length) return A.ioore(t1, 0); r = t1[0]; } else r = bdata.readUint32$0(); if (_this.sampleFormat === 2) { t1 = bdata.readUint32$0(); $.$get$__uint32()[0] = t1; t1 = $.$get$__uint32ToInt32(); if (0 >= t1.length) return A.ioore(t1, 0); g = t1[0]; } else g = bdata.readUint32$0(); if (_this.sampleFormat === 2) { t1 = bdata.readUint32$0(); $.$get$__uint32()[0] = t1; t1 = $.$get$__uint32ToInt32(); if (0 >= t1.length) return A.ioore(t1, 0); b = t1[0]; } else b = bdata.readUint32$0(); } else { r = 0; g = 0; b = 0; } t1 = _this.hdrImage; if (t1 != null) { t1.setRed$3(px, py, r); _this.hdrImage.setGreen$3(px, py, g); _this.hdrImage.setBlue$3(px, py, b); } if (_this.image != null) { t1 = _this.bitsPerSample; t2 = t1 === 16; if (t2) r = B.JSInt_methods._shrOtherPositive$1(r, 8); else if (t1 === 32) r = B.JSInt_methods._shrOtherPositive$1(r, 24); if (t2) g = B.JSInt_methods._shrOtherPositive$1(g, 8); else if (t1 === 32) g = B.JSInt_methods._shrOtherPositive$1(g, 24); if (t2) b = B.JSInt_methods._shrOtherPositive$1(b, 8); else if (t1 === 32) b = B.JSInt_methods._shrOtherPositive$1(b, 24); t1 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(255, 0, 255)); t2 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(b, 0, 255)); t3 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(g, 0, 255)); t4 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(r, 0, 255)); t5 = _this.image; t6 = t5.data; t5 = py * t5.width + px; if (!(t5 >= 0 && t5 < t6.length)) return A.ioore(t6, t5); t6[t5] = (t1 << 24 | t2 << 16 | t3 << 8 | t4) >>> 0; } } } else if (t1 >= 4) { t1 = _this.sampleFormat; if (t1 === 3) { t1 = _this.bitsPerSample; if (t1 === 32) { t1 = bdata.readUint32$0(); t2 = $.$get$__uint32(); t2[0] = t1; t1 = $.$get$__uint32ToFloat32(); if (0 >= t1.length) return A.ioore(t1, 0); r = t1[0]; t2[0] = bdata.readUint32$0(); g = t1[0]; t2[0] = bdata.readUint32$0(); b = t1[0]; t2[0] = bdata.readUint32$0(); a = t1[0]; } else if (t1 === 64) { r = bdata.readFloat64$0(); g = 0; b = 0; a = 0; } else if (t1 === 16) { t1 = bdata.readUint16$0(); if ($.Half__toFloatFloat32 == null) A.Half__initialize(); t2 = $.Half__toFloatFloat32; if (!(t1 < t2.length)) return A.ioore(t2, t1); r = t2[t1]; t1 = bdata.readUint16$0(); if ($.Half__toFloatFloat32 == null) A.Half__initialize(); t2 = $.Half__toFloatFloat32; if (!(t1 < t2.length)) return A.ioore(t2, t1); g = t2[t1]; t1 = bdata.readUint16$0(); if ($.Half__toFloatFloat32 == null) A.Half__initialize(); t2 = $.Half__toFloatFloat32; if (!(t1 < t2.length)) return A.ioore(t2, t1); b = t2[t1]; t1 = bdata.readUint16$0(); if ($.Half__toFloatFloat32 == null) A.Half__initialize(); t2 = $.Half__toFloatFloat32; if (!(t1 < t2.length)) return A.ioore(t2, t1); a = t2[t1]; } else { r = 0; g = 0; b = 0; a = 0; } t1 = _this.hdrImage; if (t1 != null) { t1.setRed$3(px, py, r); _this.hdrImage.setGreen$3(px, py, g); _this.hdrImage.setBlue$3(px, py, b); _this.hdrImage.setAlpha$3(px, py, a); } if (_this.image != null) { ri = B.JSNumber_methods.toInt$0(B.JSNumber_methods.clamp$2(r * 255, 0, 255)); gi = B.JSNumber_methods.toInt$0(B.JSNumber_methods.clamp$2(g * 255, 0, 255)); bi = B.JSNumber_methods.toInt$0(B.JSNumber_methods.clamp$2(b * 255, 0, 255)); t1 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(B.JSNumber_methods.toInt$0(B.JSNumber_methods.clamp$2(a * 255, 0, 255)), 0, 255)); t2 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(bi, 0, 255)); t3 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(gi, 0, 255)); t4 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(ri, 0, 255)); t5 = _this.image; t6 = t5.data; t5 = py * t5.width + px; if (!(t5 >= 0 && t5 < t6.length)) return A.ioore(t6, t5); t6[t5] = (t1 << 24 | t2 << 16 | t3 << 8 | t4) >>> 0; } } else { t2 = _this.bitsPerSample; if (t2 === 8) { t1 = t1 === 2; if (t1) { t2 = bdata; t3 = t2.buffer; t2 = t2.offset++; if (!(t2 >= 0 && t2 < t3.length)) return A.ioore(t3, t2); t2 = t3[t2]; $.$get$__uint8()[0] = t2; t2 = $.$get$__uint8ToInt8(); if (0 >= t2.length) return A.ioore(t2, 0); r = t2[0]; } else { t2 = bdata; t3 = t2.buffer; t2 = t2.offset++; if (!(t2 >= 0 && t2 < t3.length)) return A.ioore(t3, t2); r = t3[t2]; } if (t1) { t2 = bdata; t3 = t2.buffer; t2 = t2.offset++; if (!(t2 >= 0 && t2 < t3.length)) return A.ioore(t3, t2); t2 = t3[t2]; $.$get$__uint8()[0] = t2; t2 = $.$get$__uint8ToInt8(); if (0 >= t2.length) return A.ioore(t2, 0); g = t2[0]; } else { t2 = bdata; t3 = t2.buffer; t2 = t2.offset++; if (!(t2 >= 0 && t2 < t3.length)) return A.ioore(t3, t2); g = t3[t2]; } if (t1) { t2 = bdata; t3 = t2.buffer; t2 = t2.offset++; if (!(t2 >= 0 && t2 < t3.length)) return A.ioore(t3, t2); t2 = t3[t2]; $.$get$__uint8()[0] = t2; t2 = $.$get$__uint8ToInt8(); if (0 >= t2.length) return A.ioore(t2, 0); b = t2[0]; } else { t2 = bdata; t3 = t2.buffer; t2 = t2.offset++; if (!(t2 >= 0 && t2 < t3.length)) return A.ioore(t3, t2); b = t3[t2]; } if (t1) { t1 = bdata; t2 = t1.buffer; t1 = t1.offset++; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); t1 = t2[t1]; $.$get$__uint8()[0] = t1; t1 = $.$get$__uint8ToInt8(); if (0 >= t1.length) return A.ioore(t1, 0); a = t1[0]; } else { t1 = bdata; t2 = t1.buffer; t1 = t1.offset++; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); a = t2[t1]; } } else if (t2 === 16) { if (t1 === 2) { t1 = bdata.readUint16$0(); $.$get$__uint16()[0] = t1; t1 = $.$get$__uint16ToInt16(); if (0 >= t1.length) return A.ioore(t1, 0); r = t1[0]; } else r = bdata.readUint16$0(); if (_this.sampleFormat === 2) { t1 = bdata.readUint16$0(); $.$get$__uint16()[0] = t1; t1 = $.$get$__uint16ToInt16(); if (0 >= t1.length) return A.ioore(t1, 0); g = t1[0]; } else g = bdata.readUint16$0(); if (_this.sampleFormat === 2) { t1 = bdata.readUint16$0(); $.$get$__uint16()[0] = t1; t1 = $.$get$__uint16ToInt16(); if (0 >= t1.length) return A.ioore(t1, 0); b = t1[0]; } else b = bdata.readUint16$0(); if (_this.sampleFormat === 2) { t1 = bdata.readUint16$0(); $.$get$__uint16()[0] = t1; t1 = $.$get$__uint16ToInt16(); if (0 >= t1.length) return A.ioore(t1, 0); a = t1[0]; } else a = bdata.readUint16$0(); } else if (t2 === 32) { if (t1 === 2) { t1 = bdata.readUint32$0(); $.$get$__uint32()[0] = t1; t1 = $.$get$__uint32ToInt32(); if (0 >= t1.length) return A.ioore(t1, 0); r = t1[0]; } else r = bdata.readUint32$0(); if (_this.sampleFormat === 2) { t1 = bdata.readUint32$0(); $.$get$__uint32()[0] = t1; t1 = $.$get$__uint32ToInt32(); if (0 >= t1.length) return A.ioore(t1, 0); g = t1[0]; } else g = bdata.readUint32$0(); if (_this.sampleFormat === 2) { t1 = bdata.readUint32$0(); $.$get$__uint32()[0] = t1; t1 = $.$get$__uint32ToInt32(); if (0 >= t1.length) return A.ioore(t1, 0); b = t1[0]; } else b = bdata.readUint32$0(); if (_this.sampleFormat === 2) { t1 = bdata.readUint32$0(); $.$get$__uint32()[0] = t1; t1 = $.$get$__uint32ToInt32(); if (0 >= t1.length) return A.ioore(t1, 0); a = t1[0]; } else a = bdata.readUint32$0(); } else { r = 0; g = 0; b = 0; a = 0; } t1 = _this.hdrImage; if (t1 != null) { t1.setRed$3(px, py, r); _this.hdrImage.setGreen$3(px, py, g); _this.hdrImage.setBlue$3(px, py, b); _this.hdrImage.setAlpha$3(px, py, a); } if (_this.image != null) { t1 = _this.bitsPerSample; t2 = t1 === 16; if (t2) r = B.JSInt_methods._shrOtherPositive$1(r, 8); else if (t1 === 32) r = B.JSInt_methods._shrOtherPositive$1(r, 24); if (t2) g = B.JSInt_methods._shrOtherPositive$1(g, 8); else if (t1 === 32) g = B.JSInt_methods._shrOtherPositive$1(g, 24); if (t2) b = B.JSInt_methods._shrOtherPositive$1(b, 8); else if (t1 === 32) b = B.JSInt_methods._shrOtherPositive$1(b, 24); if (t2) a = B.JSInt_methods._shrOtherPositive$1(a, 8); else if (t1 === 32) a = B.JSInt_methods._shrOtherPositive$1(a, 24); t1 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(a, 0, 255)); t2 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(b, 0, 255)); t3 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(g, 0, 255)); t4 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(r, 0, 255)); t5 = _this.image; t6 = t5.data; t5 = py * t5.width + px; if (!(t5 >= 0 && t5 < t6.length)) return A.ioore(t6, t5); t6[t5] = (t1 << 24 | t2 << 16 | t3 << 8 | t4) >>> 0; } } } ++x; ++px; } ++y; ++py; } } else throw A.wrapException(A.ImageException$("Unsupported bitsPerSample: " + t1)); }, _jpegToImage$6(tile, image, outX, outY, tileWidth, tileHeight) { var t1, t2, t3, t4, t5, t6, y, t7, t8, x, t9, t10; for (t1 = tile.data, t2 = tile.width, t3 = t1.length, t4 = image.data, t5 = image.width, t6 = t4.length, y = 0; y < tileHeight; ++y) for (t7 = y * t2, t8 = (y + outY) * t5, x = 0; x < tileWidth; ++x) { t9 = t7 + x; if (!(t9 >= 0 && t9 < t3)) return A.ioore(t1, t9); t9 = t1[t9]; t10 = t8 + (x + outX); if (!(t10 >= 0 && t10 < t6)) return A.ioore(t4, t10); t4[t10] = t9; } }, _decodeBilevelTile$3(p, tileX, tileY) { var bdata, outX, t2, outY, t3, byteCount, bytesInThisTile, j, i, count, t4, t5, t6, exception, br, white, black, img, py, y, px, x, t7, _this = this, _null = null, _4278190080 = 4278190080, _4294967295 = 4294967295, tileIndex = tileY * A._lateReadCheck(_this.__TiffImage_tilesX, "tilesX") + tileX, t1 = _this.tileOffsets; if (!(tileIndex >= 0 && tileIndex < t1.length)) return A.ioore(t1, tileIndex); p.offset = t1[tileIndex]; t1 = _this.tileWidth; outX = tileX * t1; t2 = _this.tileHeight; outY = tileY * t2; t3 = _this.tileByteCounts; if (!(tileIndex < t3.length)) return A.ioore(t3, tileIndex); byteCount = t3[tileIndex]; bdata = null; t3 = _this.compression; if (t3 === 32773) { bytesInThisTile = B.JSInt_methods.$mod(t1, 8) === 0 ? B.JSInt_methods._tdivFast$1(t1, 8) * t2 : (B.JSInt_methods._tdivFast$1(t1, 8) + 1) * t2; bdata = A.InputBuffer$(new Uint8Array(t1 * t2), false, _null, 0); _this._decodePackbits$3(p, bytesInThisTile, bdata.buffer); } else if (t3 === 5) { bdata = A.InputBuffer$(new Uint8Array(t1 * t2), false, _null, 0); A.LzwDecoder$().decode$2(0, A.InputBuffer$from(p, byteCount, 0), bdata.buffer); if (_this.predictor === 2) for (j = 0; j < _this.height; ++j) { i = _this.samplesPerPixel; count = i * (j * _this.width + 1); for (; t1 = _this.width, t2 = _this.samplesPerPixel, i < t1 * t2; ++i) { t1 = bdata; t3 = t1.buffer; t1 = t1.offset + count; if (!(t1 >= 0 && t1 < t3.length)) return A.ioore(t3, t1); t4 = t3[t1]; t5 = bdata; t6 = t5.buffer; t2 = t5.offset + (count - t2); if (!(t2 >= 0 && t2 < t6.length)) return A.ioore(t6, t2); J.$indexSet$ax(t3, t1, t4 + t6[t2]); ++count; } } } else if (t3 === 2) { bdata = A.InputBuffer$(new Uint8Array(t1 * t2), false, _null, 0); try { A.TiffFaxDecoder$(_this.fillOrder, t1, t2).decode1D$4(bdata, p, 0, _this.tileHeight); } catch (exception) { } } else if (t3 === 3) { bdata = A.InputBuffer$(new Uint8Array(t1 * t2), false, _null, 0); try { A.TiffFaxDecoder$(_this.fillOrder, t1, t2).decode2D$5(bdata, p, 0, _this.tileHeight, _this.t4Options); } catch (exception) { } } else if (t3 === 4) { bdata = A.InputBuffer$(new Uint8Array(t1 * t2), false, _null, 0); try { A.TiffFaxDecoder$(_this.fillOrder, t1, t2).decodeT6$5(bdata, p, 0, _this.tileHeight, _this.t6Options); } catch (exception) { } } else if (t3 === 8) bdata = A.InputBuffer$(B.C__ZLibDecoder.decodeBuffer$2$verify(A.InputStream$(type$.List_int._as(p.toList$2(0, 0, byteCount)), 1, _null, 0), false), false, _null, 0); else if (t3 === 32946) { t1 = A.Inflate$(p.toList$2(0, 0, byteCount)).output; bdata = A.InputBuffer$(type$.List_int._as(A.NativeUint8List_NativeUint8List$view(t1._output_stream$_buffer.buffer, 0, t1.length)), false, _null, 0); } else if (t3 === 1) bdata = p; else throw A.wrapException(A.ImageException$("Unsupported Compression Type: " + t3)); br = new A.TiffBitReader(bdata); t1 = _this.isWhiteZero; white = t1 ? _4278190080 : _4294967295; black = t1 ? _4294967295 : _4278190080; img = _this.image; for (t1 = img.data, t2 = img.width, t3 = t1.length, t4 = img.height, py = outY, y = 0; y < _this.tileHeight; ++y, ++py) { for (t5 = py * t2, t6 = py < t4, px = outX, x = 0; x < _this.tileWidth; ++x, ++px) { if (!t6 || px >= t2) break; t7 = t5 + px; if (br.readBits$1(1) === 0) { if (!(t7 >= 0 && t7 < t3)) return A.ioore(t1, t7); t1[t7] = black; } else { if (!(t7 >= 0 && t7 < t3)) return A.ioore(t1, t7); t1[t7] = white; } } br._bitPos = 0; } }, _decodePackbits$3(data, arraySize, dst) { var t1, srcCount, dstCount, srcCount0, t2, t3, t4, t5, b, i, dstCount0; type$.List_int._as(dst); for (t1 = J.getInterceptor$ax(dst), srcCount = 0, dstCount = 0; dstCount < arraySize;) { srcCount0 = srcCount + 1; t2 = data.buffer; t3 = data.offset; t4 = t3 + srcCount; t5 = t2.length; if (!(t4 >= 0 && t4 < t5)) return A.ioore(t2, t4); t4 = t2[t4]; $.$get$__uint8()[0] = t4; t4 = $.$get$__uint8ToInt8(); if (0 >= t4.length) return A.ioore(t4, 0); b = t4[0]; if (b >= 0 && b <= 127) for (t2 = b + 1, srcCount = srcCount0, i = 0; i < t2; ++i, dstCount = dstCount0, srcCount = srcCount0) { dstCount0 = dstCount + 1; srcCount0 = srcCount + 1; t3 = data.buffer; t4 = data.offset + srcCount; if (!(t4 >= 0 && t4 < t3.length)) return A.ioore(t3, t4); t1.$indexSet(dst, dstCount, t3[t4]); } else { t4 = b <= -1 && b >= -127; srcCount = srcCount0 + 1; if (t4) { t3 += srcCount0; if (!(t3 >= 0 && t3 < t5)) return A.ioore(t2, t3); t3 = t2[t3]; for (t2 = -b + 1, i = 0; i < t2; ++i, dstCount = dstCount0) { dstCount0 = dstCount + 1; t1.$indexSet(dst, dstCount, t3); } } } } }, _readTag$2(type, defaultValue) { var t1 = this.tags; if (!t1.containsKey$1(0, type)) return defaultValue; return t1.$index(0, type).readValue$0(0); }, _readTag$1(type) { return this._readTag$2(type, 0); }, _readTagList$1(type) { var t1 = this.tags; if (!t1.containsKey$1(0, type)) return null; return t1.$index(0, type).readValues$0(); }, set$tileOffsets(tileOffsets) { this.tileOffsets = type$.nullable_List_int._as(tileOffsets); }, set$tileByteCounts(tileByteCounts) { this.tileByteCounts = type$.nullable_List_int._as(tileByteCounts); }, set$colorMap(colorMap) { this.colorMap = type$.nullable_List_int._as(colorMap); } }; A.TiffInfo.prototype = {}; A.LzwDecoder.prototype = { decode$2(_, p, out) { var outLen, t1, code, oldCode, t2, t3, i, t4, _this = this, _s5_ = "_data", _s11_ = "_outPointer", _s4_ = "_out", _s13_ = "_bufferLength"; type$.List_int._as(out); _this.set$__LzwDecoder__out(out); outLen = out.length; _this.__LzwDecoder__outPointer = 0; t1 = type$.Uint8List._as(p.buffer); _this.__LzwDecoder__data = t1; _this.__LzwDecoder__dataLength = A._lateReadCheck(t1, _s5_).length; _this._bytePointer = p.offset; t1 = A._lateReadCheck(_this.__LzwDecoder__data, _s5_); if (0 >= t1.length) return A.ioore(t1, 0); if (t1[0] === 0) { t1 = A._lateReadCheck(_this.__LzwDecoder__data, _s5_); if (1 >= t1.length) return A.ioore(t1, 1); t1 = t1[1] === 1; } else t1 = false; if (t1) throw A.wrapException(A.ImageException$("Invalid LZW Data")); _this._initializeStringTable$0(); _this._nextBits = _this._nextData = 0; code = _this._getNextCode$0(); t1 = _this._tiff_lzw_decoder$_buffer; oldCode = 0; while (true) { if (!(code !== 257 && A._lateReadCheck(_this.__LzwDecoder__outPointer, _s11_) < outLen)) break; if (code === 256) { _this._initializeStringTable$0(); code = _this._getNextCode$0(); _this.__LzwDecoder__bufferLength = 0; if (code === 257) break; t2 = A._lateReadCheck(_this.__LzwDecoder__out, _s4_); t3 = A._lateReadCheck(_this.__LzwDecoder__outPointer, _s11_); _this.__LzwDecoder__outPointer = t3 + 1; J.$indexSet$ax(t2, t3, code); oldCode = code; } else { t2 = _this._tableIndex; t2.toString; if (code < t2) { _this._getString$1(code); for (i = A._lateReadCheck(_this.__LzwDecoder__bufferLength, _s13_) - 1; i >= 0; --i) { t2 = A._lateReadCheck(_this.__LzwDecoder__out, _s4_); t3 = A._lateReadCheck(_this.__LzwDecoder__outPointer, _s11_); _this.__LzwDecoder__outPointer = t3 + 1; if (!(i < 4096)) return A.ioore(t1, i); J.$indexSet$ax(t2, t3, t1[i]); } t2 = A._lateReadCheck(_this.__LzwDecoder__bufferLength, _s13_) - 1; if (!(t2 >= 0 && t2 < 4096)) return A.ioore(t1, t2); _this._addString$2(oldCode, t1[t2]); } else { _this._getString$1(oldCode); for (i = A._lateReadCheck(_this.__LzwDecoder__bufferLength, _s13_) - 1; i >= 0; --i) { t2 = A._lateReadCheck(_this.__LzwDecoder__out, _s4_); t3 = A._lateReadCheck(_this.__LzwDecoder__outPointer, _s11_); _this.__LzwDecoder__outPointer = t3 + 1; if (!(i < 4096)) return A.ioore(t1, i); J.$indexSet$ax(t2, t3, t1[i]); } t2 = A._lateReadCheck(_this.__LzwDecoder__out, _s4_); t3 = A._lateReadCheck(_this.__LzwDecoder__outPointer, _s11_); _this.__LzwDecoder__outPointer = t3 + 1; t4 = A._lateReadCheck(_this.__LzwDecoder__bufferLength, _s13_) - 1; if (!(t4 >= 0 && t4 < 4096)) return A.ioore(t1, t4); J.$indexSet$ax(t2, t3, t1[t4]); t4 = A._lateReadCheck(_this.__LzwDecoder__bufferLength, _s13_) - 1; if (!(t4 >= 0 && t4 < 4096)) return A.ioore(t1, t4); _this._addString$2(oldCode, t1[t4]); } oldCode = code; } code = _this._getNextCode$0(); } }, _addString$2(string, newString) { var _this = this, t1 = A._lateReadCheck(_this.__LzwDecoder__table, "_table"), t2 = _this._tableIndex; t2.toString; if (!(t2 < t1.length)) return A.ioore(t1, t2); t1[t2] = newString; t2 = A._lateReadCheck(_this.__LzwDecoder__prefix, "_prefix"); t1 = _this._tableIndex; t1.toString; if (!(t1 < t2.length)) return A.ioore(t2, t1); t2[t1] = string; t1 = _this._tableIndex = t1 + 1; if (t1 === 511) _this._bitsToGet = 10; else if (t1 === 1023) _this._bitsToGet = 11; else if (t1 === 2047) _this._bitsToGet = 12; }, _getString$1(code) { var t1, t2, t3, c, _this = this, _s13_ = "_bufferLength"; _this.__LzwDecoder__bufferLength = 0; t1 = _this._tiff_lzw_decoder$_buffer; t2 = A._lateReadCheck(0, _s13_); _this.__LzwDecoder__bufferLength = t2 + 1; t3 = A._lateReadCheck(_this.__LzwDecoder__table, "_table"); if (!(code < t3.length)) return A.ioore(t3, code); t3 = t3[code]; if (t2 >>> 0 !== t2 || t2 >= 4096) return A.ioore(t1, t2); t1[t2] = t3; t3 = A._lateReadCheck(_this.__LzwDecoder__prefix, "_prefix"); if (!(code < t3.length)) return A.ioore(t3, code); c = t3[code]; for (; c !== 4098;) { t2 = A._lateReadCheck(_this.__LzwDecoder__bufferLength, _s13_); _this.__LzwDecoder__bufferLength = t2 + 1; t3 = A._lateReadCheck(_this.__LzwDecoder__table, "_table"); if (!(c >= 0 && c < t3.length)) return A.ioore(t3, c); t3 = t3[c]; if (t2 >>> 0 !== t2 || t2 >= 4096) return A.ioore(t1, t2); t1[t2] = t3; t3 = A._lateReadCheck(_this.__LzwDecoder__prefix, "_prefix"); if (!(c < t3.length)) return A.ioore(t3, c); c = t3[c]; } }, _getNextCode$0() { var t1, t2, t3, _this = this, _s11_ = "_dataLength"; if (_this._bytePointer >= A._lateReadCheck(_this.__LzwDecoder__dataLength, _s11_)) return 257; for (; t1 = _this._nextBits, t2 = _this._bitsToGet, t1 < t2;) { if (_this._bytePointer >= A._lateReadCheck(_this.__LzwDecoder__dataLength, _s11_)) return 257; t1 = _this._nextData; t2 = A._lateReadCheck(_this.__LzwDecoder__data, "_data"); t3 = _this._bytePointer++; if (!(t3 >= 0 && t3 < t2.length)) return A.ioore(t2, t3); _this._nextData = (t1 << 8 >>> 0) + t2[t3] >>> 0; _this._nextBits += 8; } t1 -= t2; _this._nextBits = t1; t1 = B.JSInt_methods._shrReceiverPositive$1(_this._nextData, t1); t2 -= 9; if (!(t2 >= 0 && t2 < 4)) return A.ioore(B.List_511_1023_2047_4095, t2); return t1 & B.List_511_1023_2047_4095[t2]; }, _initializeStringTable$0() { var t1, i, _this = this; _this.__LzwDecoder__table = new Uint8Array(4096); t1 = new Uint32Array(4096); _this.__LzwDecoder__prefix = t1; B.NativeUint32List_methods.fillRange$3(A._lateReadCheck(t1, "_prefix"), 0, A._lateReadCheck(_this.__LzwDecoder__prefix, "_prefix").length, 4098); for (i = 0; i < 256; ++i) { t1 = A._lateReadCheck(_this.__LzwDecoder__table, "_table"); if (!(i < t1.length)) return A.ioore(t1, i); t1[i] = i; } _this._bitsToGet = 9; _this._tableIndex = 258; }, set$__LzwDecoder__out(__LzwDecoder__out) { this.__LzwDecoder__out = type$.List_int._as(__LzwDecoder__out); } }; A.TiffDecoder.prototype = { decodeImage$1(bytes) { var _this = this, t1 = A.InputBuffer$(type$.List_int._as(bytes), false, null, 0); _this.__TiffDecoder__input = t1; t1 = _this.info = _this._readHeader$1(A._lateReadCheck(t1, "_input")); if (t1 == null) return null; t1 = t1.images; if (0 >= t1.length) return A.ioore(t1, 0); return t1[0].decode$1(0, A._lateReadCheck(_this.__TiffDecoder__input, "_input")); }, _readHeader$1(p) { var p2, img, t2, offset, t3, img0, t4, exception, t5, _null = null, t1 = A._setArrayType([], type$.JSArray_TiffImage), info = new A.TiffInfo(t1), byteOrder = p.readUint16$0(); if (byteOrder !== 18761 && byteOrder !== 19789) return _null; if (byteOrder === 19789) p.bigEndian = true; else p.bigEndian = false; t2 = p.readUint16$0(); info.signature = t2; if (t2 !== 42) return _null; offset = p.readUint32$0(); p2 = A.InputBuffer$from(p, _null, 0); p2.offset = offset; for (t2 = type$.int, t3 = type$.TiffEntry; offset !== 0;) { img = null; try { img0 = new A.TiffImage(A.LinkedHashMap_LinkedHashMap$_empty(t2, t3)); img0.TiffImage$1(p2); img = img0; t4 = img; if (!(t4.width !== 0 && t4.height !== 0)) break; } catch (exception) { break; } B.JSArray_methods.add$1(t1, img); t4 = t1.length; if (t4 === 1) { if (0 >= t4) return A.ioore(t1, 0); t5 = t1[0]; info.width = t5.width; if (0 >= t4) return A.ioore(t1, 0); info.height = t5.height; } offset = p2.readUint32$0(); if (offset !== 0) p2.offset = offset; } return t1.length !== 0 ? info : _null; } }; A.VP8.prototype = { decodeHeader$0() { var t2, t1 = this.input, bits = t1.readUint24$0(); if ((bits & 1) !== 0) return false; if ((bits >>> 1 & 7) > 3) return false; if ((bits >>> 4 & 1) === 0) return false; this._frameHeader.__VP8FrameHeader_partitionLength = bits >>> 5; if (t1.readUint24$0() !== 2752925) return false; t2 = this._webp; t2.width = t1.readUint16$0(); t2.height = t1.readUint16$0(); return true; }, decode$0(_) { var t1, _this = this, _null = null; if (!_this._getHeaders$0()) return _null; t1 = _this._webp; _this.output = A.Image$(t1.width, t1.height, B.Channels_1, _null, _null); _this._initFrame$0(); if (!_this._parseFrame$0()) return _null; return _this.output; }, _getHeaders$0() { var t1, i, t2, t3, _this = this, _s15_ = "partitionLength"; if (!_this.decodeHeader$0()) return false; _this._proba = A.VP8Proba$(); for (t1 = _this._dqm, i = 0; i < 4; ++i) { t2 = new Int32Array(2); t3 = new Int32Array(2); B.JSArray_methods.$indexSet(t1, i, new A.VP8QuantMatrix(t2, t3, new Int32Array(2))); } t1 = _this._webp; t2 = t1.width; if (typeof t2 !== "number") return t2.$shr(); B.JSInt_methods._shrOtherPositive$1(t2, 8); t1 = t1.height; if (typeof t1 !== "number") return t1.$shr(); B.JSInt_methods._shrOtherPositive$1(t1, 8); _this.__VP8__cropLeft = _this._cropTop = 0; _this.__VP8__cropRight = t2; _this._cropBottom = t1; _this._mbWidth = B.JSInt_methods._shrOtherPositive$1(t2 + 15, 4); _this._mbHeight = B.JSInt_methods._shrOtherPositive$1(t1 + 15, 4); _this.__VP8__segment = 0; t1 = _this.input; t2 = _this._frameHeader; _this.__VP8_br = A.VP8BitReader$(t1.subset$1(A._lateReadCheck(t2.__VP8FrameHeader_partitionLength, _s15_))); t1.offset += A._lateReadCheck(t2.__VP8FrameHeader_partitionLength, _s15_); A._lateReadCheck(_this.__VP8_br, "br").getValue$1(1); A._lateReadCheck(_this.__VP8_br, "br").getValue$1(1); _this._parseSegmentHeader$2(_this._segmentHeader, _this._proba); _this._parseFilterHeader$0(); if (!_this._parsePartitions$1(t1)) return false; _this._parseQuant$0(); A._lateReadCheck(_this.__VP8_br, "br").getValue$1(1); _this._parseProba$0(); return true; }, _parseSegmentHeader$2(hdr, proba) { var s, t2, value, _this = this, _s2_ = "br", t1 = A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(1) !== 0; hdr.useSegment = t1; if (t1) { hdr.updateMap = A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(1) !== 0; if (A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(1) !== 0) { hdr.absoluteDelta = A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(1) !== 0; for (t1 = hdr.quantizer, s = 0; s < 4; ++s) { if (A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(1) !== 0) { t2 = A._lateReadCheck(_this.__VP8_br, _s2_); value = t2.getValue$1(7); t2 = t2.getValue$1(1) === 1 ? -value : value; } else t2 = 0; t1[s] = t2; } for (t1 = hdr.filterStrength, s = 0; s < 4; ++s) { if (A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(1) !== 0) { t2 = A._lateReadCheck(_this.__VP8_br, _s2_); value = t2.getValue$1(6); t2 = t2.getValue$1(1) === 1 ? -value : value; } else t2 = 0; t1[s] = t2; } } if (hdr.updateMap) for (s = 0; s < 3; ++s) { t1 = proba.segments; t1[s] = A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(1) !== 0 ? A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(8) : 255; } } else hdr.updateMap = false; return true; }, _parseFilterHeader$0() { var t1, i, t2, value, _this = this, _s2_ = "br", hdr = _this._filterHeader; hdr.__VP8FilterHeader_simple = A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(1) !== 0; hdr.level = A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(6); hdr.__VP8FilterHeader_sharpness = A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(3); t1 = A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(1) !== 0; hdr.__VP8FilterHeader_useLfDelta = t1; if (A._lateReadCheck(t1, "useLfDelta")) if (A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(1) !== 0) { for (t1 = hdr.refLfDelta, i = 0; i < 4; ++i) if (A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(1) !== 0) { t2 = A._lateReadCheck(_this.__VP8_br, _s2_); value = t2.getValue$1(6); t1[i] = t2.getValue$1(1) === 1 ? -value : value; } for (t1 = hdr.modeLfDelta, i = 0; i < 4; ++i) if (A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(1) !== 0) { t2 = A._lateReadCheck(_this.__VP8_br, _s2_); value = t2.getValue$1(6); t1[i] = t2.getValue$1(1) === 1 ? -value : value; } } if (hdr.level === 0) t1 = 0; else t1 = A._lateReadCheck(hdr.__VP8FilterHeader_simple, "simple") ? 1 : 2; _this._filterType = t1; return true; }, _parsePartitions$1(input) { var lastPart, partStart, sz, p, szb, t2, t3, t4, t5, t6, partEnd, bufEnd = input.end - input.offset, t1 = B.JSInt_methods._shlPositive$1(1, A._lateReadCheck(this.__VP8_br, "br").getValue$1(2)); this.__VP8__numPartitions = t1; lastPart = A._lateReadCheck(t1, "_numPartitions") - 1; partStart = lastPart * 3; if (bufEnd < partStart) return false; for (t1 = this._partitions, sz = 0, p = 0; p < lastPart; ++p, partStart = partEnd) { szb = input.subset$2$offset(3, sz); t2 = szb.buffer; t3 = szb.offset; t4 = t2.length; if (!(t3 >= 0 && t3 < t4)) return A.ioore(t2, t3); t5 = t2[t3]; t6 = t3 + 1; if (!(t6 < t4)) return A.ioore(t2, t6); t6 = t2[t6]; t3 += 2; if (!(t3 < t4)) return A.ioore(t2, t3); partEnd = partStart + ((t5 | t6 << 8 | t2[t3] << 16) >>> 0); if (partEnd > bufEnd) partEnd = bufEnd; t2 = new A.VP8BitReader(input.subset$2$position(partEnd - partStart, partStart)); t2.__VP8BitReader__range = 254; t2.__VP8BitReader__value = 0; t2.__VP8BitReader__bits = -8; B.JSArray_methods.$indexSet(t1, p, t2); sz += 3; } B.JSArray_methods.$indexSet(t1, lastPart, A.VP8BitReader$(input.subset$2$position(bufEnd - partStart, input.offset - input.start + partStart))); return partStart < bufEnd; }, _parseQuant$0() { var t1, t2, i, q, t3, m, t4, _this = this, _s2_ = "br", base_q0 = A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(7), dqy1_dc = A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(1) !== 0 ? A._lateReadCheck(_this.__VP8_br, _s2_).getSignedValue$1(4) : 0, dqy2_dc = A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(1) !== 0 ? A._lateReadCheck(_this.__VP8_br, _s2_).getSignedValue$1(4) : 0, dqy2_ac = A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(1) !== 0 ? A._lateReadCheck(_this.__VP8_br, _s2_).getSignedValue$1(4) : 0, dquv_dc = A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(1) !== 0 ? A._lateReadCheck(_this.__VP8_br, _s2_).getSignedValue$1(4) : 0, dquv_ac = A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(1) !== 0 ? A._lateReadCheck(_this.__VP8_br, _s2_).getSignedValue$1(4) : 0, hdr = _this._segmentHeader; for (t1 = _this._dqm, t2 = hdr.quantizer, i = 0; i < 4; ++i) { if (hdr.useSegment) { q = t2[i]; if (!hdr.absoluteDelta) q += base_q0; } else { if (i > 0) { t3 = t1[0]; if (!(i >= 0 && i < 4)) return A.ioore(t1, i); t1[i] = t3; continue; } q = base_q0; } m = t1[i]; t3 = m.y1Mat; t4 = q + dqy1_dc; if (t4 < 0) t4 = 0; else if (t4 > 127) t4 = 127; t3[0] = B.List_8co1[t4]; if (q < 0) t4 = 0; else t4 = q > 127 ? 127 : q; t3[1] = B.List_AiM[t4]; t4 = m.y2Mat; t3 = q + dqy2_dc; if (t3 < 0) t3 = 0; else if (t3 > 127) t3 = 127; t4[0] = B.List_8co1[t3] * 2; t3 = q + dqy2_ac; if (t3 < 0) t3 = 0; else if (t3 > 127) t3 = 127; t4[1] = B.List_AiM[t3] * 101581 >>> 16; if (t4[1] < 8) t4[1] = 8; t3 = m.uvMat; t4 = q + dquv_dc; if (t4 < 0) t4 = 0; else if (t4 > 117) t4 = 117; t3[0] = B.List_8co1[t4]; t4 = q + dquv_ac; if (t4 < 0) t4 = 0; else if (t4 > 127) t4 = 127; t3[1] = B.List_AiM[t4]; } }, _parseProba$0() { var t, b, c, p, v, t1, _this = this, _s2_ = "br", proba = _this._proba; for (t = 0; t < 4; ++t) for (b = 0; b < 8; ++b) for (c = 0; c < 3; ++c) for (p = 0; p < 11; ++p) { v = A._lateReadCheck(_this.__VP8_br, _s2_).getBit$1(B.List_MIe[t][b][c][p]) !== 0 ? A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(8) : B.List_S8N[t][b][c][p]; t1 = proba.bands; if (!(t < t1.length)) return A.ioore(t1, t); t1 = t1[t]; if (!(b < t1.length)) return A.ioore(t1, b); t1 = t1[b].probas; if (!(c < t1.length)) return A.ioore(t1, c); t1[c][p] = v; } t1 = A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(1) !== 0; _this.__VP8__useSkipProba = t1; if (A._lateReadCheck(t1, "_useSkipProba")) _this.__VP8__skipP = A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(8); }, _precomputeFilterStrengths$0() { var hdr, t2, t3, t4, s, baseLevel, t5, i4x4, info, level, ilevel, _this = this, _s9_ = "sharpness", t1 = _this._filterType; t1.toString; if (t1 > 0) { hdr = _this._filterHeader; for (t1 = hdr.refLfDelta, t2 = hdr.modeLfDelta, t3 = _this._segmentHeader, t4 = t3.filterStrength, s = 0; s < 4; ++s) { if (t3.useSegment) { baseLevel = t4[s]; if (!t3.absoluteDelta) { t5 = hdr.level; t5.toString; baseLevel += t5; } } else baseLevel = hdr.level; for (i4x4 = 0; i4x4 <= 1; ++i4x4) { info = J.$index$asx(J.$index$asx(A._lateReadCheck(_this.__VP8__fStrengths, "_fStrengths"), s), i4x4); if (A._lateReadCheck(hdr.__VP8FilterHeader_useLfDelta, "useLfDelta")) { baseLevel.toString; level = baseLevel + t1[0]; if (i4x4 !== 0) level += t2[0]; } else level = baseLevel; level.toString; if (level < 0) level = 0; else if (level > 63) level = 63; if (level > 0) { if (A._lateReadCheck(hdr.__VP8FilterHeader_sharpness, _s9_) > 0) { ilevel = A._lateReadCheck(hdr.__VP8FilterHeader_sharpness, _s9_) > 4 ? B.JSInt_methods._shrOtherPositive$1(level, 2) : B.JSInt_methods._shrOtherPositive$1(level, 1); if (ilevel > 9 - A._lateReadCheck(hdr.__VP8FilterHeader_sharpness, _s9_)) ilevel = 9 - A._lateReadCheck(hdr.__VP8FilterHeader_sharpness, _s9_); } else ilevel = level; if (ilevel < 1) ilevel = 1; info.fInnerLevel = ilevel; info.fLimit = 2 * level + ilevel; if (level >= 40) t5 = 2; else t5 = level >= 15 ? 1 : 0; info.hevThresh = t5; } else info.fLimit = 0; info.fInner = i4x4 !== 0; } } } }, _initFrame$0() { var _list, i, _i, t3, t4, extra_rows, extra_y, extra_uv, uvWidth, _length, _this = this, _null = null, t1 = _this._webp, t2 = t1._webp_info$_alphaData; if (t2 != null) _this._alphaData = t2; _list = J.JSArray_JSArray$allocateFixed(4, type$.List_VP8FInfo); for (t2 = type$.JSArray_VP8FInfo, i = 0; i < 4; ++i) _list[i] = A._setArrayType([new A.VP8FInfo(), new A.VP8FInfo()], t2); _this.set$__VP8__fStrengths(type$.List_List_VP8FInfo._as(_list)); t2 = _this._mbWidth; t2.toString; _list = J.JSArray_JSArray$allocateFixed(t2, type$.VP8TopSamples); for (_i = 0; _i < t2; ++_i) { t3 = new Uint8Array(16); t4 = new Uint8Array(8); _list[_i] = new A.VP8TopSamples(t3, t4, new Uint8Array(8)); } _this.set$__VP8__yuvT(type$.List_VP8TopSamples._as(_list)); _this.__VP8__yuvBlock = new Uint8Array(832); t2 = _this._mbWidth; t2.toString; _this._intraT = new Uint8Array(4 * t2); t3 = _this._cacheYStride = 16 * t2; t2 = _this._cacheUVStride = 8 * t2; t4 = _this._filterType; t4.toString; if (!(t4 < 3)) return A.ioore(B.List_0_2_8, t4); extra_rows = B.List_0_2_8[t4]; extra_y = extra_rows * t3; extra_uv = (extra_rows / 2 | 0) * t2; _this.__VP8__cacheY = A.InputBuffer$(new Uint8Array(16 * t3 + extra_y), false, _null, extra_y); t2 = 8 * t2 + extra_uv; _this.__VP8__cacheU = A.InputBuffer$(new Uint8Array(t2), false, _null, extra_uv); _this.__VP8__cacheV = A.InputBuffer$(new Uint8Array(t2), false, _null, extra_uv); t1 = t1.width; _this.__VP8__tmpY = A.InputBuffer$(new Uint8Array(t1), false, _null, 0); uvWidth = B.JSInt_methods._shrOtherPositive$1(t1 + 1, 1); _this.__VP8__tmpU = A.InputBuffer$(new Uint8Array(uvWidth), false, _null, 0); _this.__VP8__tmpV = A.InputBuffer$(new Uint8Array(uvWidth), false, _null, 0); if (t4 === 2) _this.__VP8__tlMbY = _this.__VP8__tlMbX = 0; else { t1 = B.JSInt_methods._tdivFast$1(A._lateReadCheck(_this.__VP8__cropLeft, "_cropLeft") - extra_rows, 16); _this.__VP8__tlMbX = t1; t2 = _this._cropTop; t2.toString; _this.__VP8__tlMbY = B.JSInt_methods._tdivFast$1(t2 - extra_rows, 16); if (A._lateReadCheck(t1, "_tlMbX") < 0) _this.__VP8__tlMbX = 0; if (A._lateReadCheck(_this.__VP8__tlMbY, "_tlMbY") < 0) _this.__VP8__tlMbY = 0; } t1 = _this._cropBottom; t1.toString; _this._brMbY = B.JSInt_methods._tdivFast$1(t1 + 15 + extra_rows, 16); t1 = B.JSInt_methods._tdivFast$1(A._lateReadCheck(_this.__VP8__cropRight, "_cropRight") + 15 + extra_rows, 16); _this._brMbX = t1; t2 = _this._mbWidth; t2.toString; if (t1 > t2) _this._brMbX = t2; t1 = _this._brMbY; t1.toString; t3 = _this._mbHeight; t3.toString; if (t1 > t3) _this._brMbY = t3; _length = t2 + 1; _list = J.JSArray_JSArray$allocateFixed(_length, type$.VP8MB); for (_i = 0; _i < _length; ++_i) _list[_i] = new A.VP8MB(); _this.set$__VP8__mbInfo(type$.List_VP8MB._as(_list)); t1 = _this._mbWidth; t1.toString; _list = J.JSArray_JSArray$allocateFixed(t1, type$.VP8MBData); for (_i = 0; _i < t1; ++_i) { t2 = new Int16Array(384); _list[_i] = new A.VP8MBData(t2, new Uint8Array(16)); } _this.set$__VP8__mbData(type$.List_VP8MBData._as(_list)); t1 = _this._mbWidth; t1.toString; _this.set$__VP8__fInfo(type$.List_nullable_VP8FInfo._as(A.List_List$filled(t1, _null, false, type$.nullable_VP8FInfo))); _this._precomputeFilterStrengths$0(); A.VP8Filter__initTables(); _this.__VP8__dsp = new A.VP8Filter(); return true; }, _parseFrame$0() { var t1, t2, t3, t4, t5, tokenBr, left, mb, block, skip, t6, useFilter, _this = this, _s7_ = "_mbInfo", _s2_ = "br", _s10_ = "isIntra4x4"; _this._mbY = 0; t1 = _this._intraL; t2 = _this._segmentHeader; t3 = _this._partitions; t4 = 0; while (true) { t5 = _this._brMbY; t5.toString; if (!(t4 < t5)) break; t4 = (t4 & A._lateReadCheck(_this.__VP8__numPartitions, "_numPartitions") - 1) >>> 0; if (!(t4 >= 0 && t4 < 8)) return A.ioore(t3, t4); tokenBr = t3[t4]; while (true) { t4 = _this._mbX; t5 = _this._mbWidth; t5.toString; if (!(t4 < t5)) break; left = J.$index$asx(A._lateReadCheck(_this.__VP8__mbInfo, _s7_), 0); mb = J.$index$asx(A._lateReadCheck(_this.__VP8__mbInfo, _s7_), 1 + _this._mbX); block = J.$index$asx(A._lateReadCheck(_this.__VP8__mbData, "_mbData"), _this._mbX); if (t2.updateMap) { t4 = A._lateReadCheck(_this.__VP8_br, _s2_).getBit$1(_this._proba.segments[0]); t5 = _this.__VP8_br; _this.__VP8__segment = t4 === 0 ? A._lateReadCheck(t5, _s2_).getBit$1(_this._proba.segments[1]) : 2 + A._lateReadCheck(t5, _s2_).getBit$1(_this._proba.segments[2]); } skip = A._lateReadCheck(_this.__VP8__useSkipProba, "_useSkipProba") && A._lateReadCheck(_this.__VP8_br, _s2_).getBit$1(A._lateReadCheck(_this.__VP8__skipP, "_skipP")) !== 0; _this._parseIntraMode$0(); if (!skip) skip = _this._parseResiduals$2(mb, tokenBr); else { left.nz = mb.nz = 0; if (!A._lateReadCheck(block.__VP8MBData_isIntra4x4, _s10_)) left.nzDc = mb.nzDc = 0; block.__VP8MBData_nonZeroUV = block.nonZeroY = 0; } t4 = _this._filterType; t4.toString; if (t4 > 0) { t4 = A._lateReadCheck(_this.__VP8__fInfo, "_fInfo"); t5 = _this._mbX; t6 = J.$index$asx(A._lateReadCheck(_this.__VP8__fStrengths, "_fStrengths"), A._lateReadCheck(_this.__VP8__segment, "_segment")); J.$indexSet$ax(t4, t5, J.$index$asx(t6, A._lateReadCheck(block.__VP8MBData_isIntra4x4, _s10_) ? 1 : 0)); t4 = J.$index$asx(A._lateReadCheck(_this.__VP8__fInfo, "_fInfo"), _this._mbX); t4.toString; t4.fInner = t4.fInner || !skip; } ++_this._mbX; } left = J.$index$asx(A._lateReadCheck(_this.__VP8__mbInfo, _s7_), 0); left.nzDc = left.nz = 0; B.NativeUint8List_methods.fillRange$3(t1, 0, 4, 0); _this._mbX = 0; _this._reconstructRow$0(); t4 = _this._filterType; t4.toString; if (t4 > 0) if (_this._mbY >= A._lateReadCheck(_this.__VP8__tlMbY, "_tlMbY")) { t4 = _this._mbY; t5 = _this._brMbY; t5.toString; t5 = t4 <= t5; useFilter = t5; } else useFilter = false; else useFilter = false; if (!_this._finishRow$1(useFilter)) return false; t4 = ++_this._mbY; } return true; }, _reconstructRow$0() { var t2, block, j, t3, top_yuv, coeffs, bits, topRight, topRight32, t4, p, n, dst, c1, t5, c2, y_out, u_out, _this = this, _null = null, _s9_ = "_yuvBlock", _s4_ = "_dsp", mb_y = _this._mbY, y_dst = A.InputBuffer$(A._lateReadCheck(_this.__VP8__yuvBlock, _s9_), false, _null, 40), u_dst = A.InputBuffer$(A._lateReadCheck(_this.__VP8__yuvBlock, _s9_), false, _null, 584), v_dst = A.InputBuffer$(A._lateReadCheck(_this.__VP8__yuvBlock, _s9_), false, _null, 600), t1 = mb_y > 0, mb_x = 0; while (true) { t2 = _this._mbWidth; t2.toString; if (!(mb_x < t2)) break; block = J.$index$asx(A._lateReadCheck(_this.__VP8__mbData, "_mbData"), mb_x); if (mb_x > 0) { for (j = -1; j < 16; ++j) { t2 = j * 32; y_dst.memcpy$4(t2 - 4, 4, y_dst, t2 + 12); } for (j = -1; j < 8; ++j) { t2 = j * 32; t3 = t2 - 4; t2 += 4; u_dst.memcpy$4(t3, 4, u_dst, t2); v_dst.memcpy$4(t3, 4, v_dst, t2); } } else { for (j = 0; j < 16; ++j) J.$indexSet$ax(y_dst.buffer, y_dst.offset + (j * 32 - 1), 129); for (j = 0; j < 8; ++j) { t2 = j * 32 - 1; J.$indexSet$ax(u_dst.buffer, u_dst.offset + t2, 129); J.$indexSet$ax(v_dst.buffer, v_dst.offset + t2, 129); } if (t1) { J.$indexSet$ax(v_dst.buffer, v_dst.offset + -33, 129); J.$indexSet$ax(u_dst.buffer, u_dst.offset + -33, 129); J.$indexSet$ax(y_dst.buffer, y_dst.offset + -33, 129); } } top_yuv = J.$index$asx(A._lateReadCheck(_this.__VP8__yuvT, "_yuvT"), mb_x); coeffs = block.coeffs; bits = block.nonZeroY; if (t1) { y_dst.memcpy$3(-32, 16, top_yuv.y); u_dst.memcpy$3(-32, 8, top_yuv.u); v_dst.memcpy$3(-32, 8, top_yuv.v); } else if (mb_x === 0) { t2 = y_dst.buffer; t3 = y_dst.offset + -33; J.fillRange$3$ax(t2, t3, t3 + 21, 127); t3 = u_dst.buffer; t2 = u_dst.offset + -33; J.fillRange$3$ax(t3, t2, t2 + 9, 127); t2 = v_dst.buffer; t3 = v_dst.offset + -33; J.fillRange$3$ax(t2, t3, t3 + 9, 127); } if (A._lateReadCheck(block.__VP8MBData_isIntra4x4, "isIntra4x4")) { topRight = A.InputBuffer$from(y_dst, _null, -16); topRight32 = topRight.toUint32List$0(); if (t1) { t2 = _this._mbWidth; t2.toString; if (mb_x >= t2 - 1) { t2 = top_yuv.y[15]; t3 = topRight.buffer; t4 = topRight.offset; J.fillRange$3$ax(t3, t4, t4 + 4, t2); } else topRight.memcpy$3(0, 4, J.$index$asx(A._lateReadCheck(_this.__VP8__yuvT, "_yuvT"), mb_x + 1).y); } t2 = topRight32.length; if (0 >= t2) return A.ioore(topRight32, 0); p = topRight32[0]; if (96 >= t2) return A.ioore(topRight32, 96); topRight32[96] = p; topRight32[64] = p; topRight32[32] = p; for (t2 = block.imodes, n = 0; n < 16; ++n, bits = bits << 2 >>> 0) { dst = A.InputBuffer$from(y_dst, _null, B.List_cGl0[n]); t3 = t2[n]; if (!(t3 < 10)) return A.ioore(B.List_sty, t3); B.List_sty[t3].call$1(dst); bits.toString; t3 = n * 16; _this._doTransform$3(bits, new A.InputBuffer(coeffs, t3, 384, t3, false), dst); } } else { t2 = A.VP8__checkMode(mb_x, mb_y, block.imodes[0]); t2.toString; if (!(t2 < 7)) return A.ioore(B.List_8aB, t2); B.List_8aB[t2].call$1(y_dst); if (bits !== 0) for (n = 0; n < 16; ++n, bits = bits << 2 >>> 0) { dst = A.InputBuffer$from(y_dst, _null, B.List_cGl0[n]); bits.toString; t2 = n * 16; _this._doTransform$3(bits, new A.InputBuffer(coeffs, t2, 384, t2, false), dst); } } t2 = A._lateReadCheck(block.__VP8MBData_nonZeroUV, "nonZeroUV"); t3 = A.VP8__checkMode(mb_x, mb_y, block.uvmode); t3.toString; if (!(t3 < 7)) return A.ioore(B.List_0W6, t3); B.List_0W6[t3].call$1(u_dst); B.List_0W6[t3].call$1(v_dst); c1 = new A.InputBuffer(coeffs, 256, 384, 256, false); if ((t2 & 255) !== 0) { t3 = _this.__VP8__dsp; if ((t2 & 170) !== 0) { t3 = A._lateReadCheck(t3, _s4_); t3.transformOne$2(c1, u_dst); t3.transformOne$2(A.InputBuffer$from(c1, _null, 16), A.InputBuffer$from(u_dst, _null, 4)); t4 = A.InputBuffer$from(c1, _null, 32); t5 = A.InputBuffer$from(u_dst, _null, 128); t3.transformOne$2(t4, t5); t3.transformOne$2(A.InputBuffer$from(t4, _null, 16), A.InputBuffer$from(t5, _null, 4)); } else A._lateReadCheck(t3, _s4_).transformDCUV$2(c1, u_dst); } c2 = new A.InputBuffer(coeffs, 320, 384, 320, false); t2 = B.JSInt_methods._shrOtherPositive$1(t2, 8); if ((t2 & 255) !== 0) { t3 = _this.__VP8__dsp; if ((t2 & 170) !== 0) { t2 = A._lateReadCheck(t3, _s4_); t2.transformOne$2(c2, v_dst); t2.transformOne$2(A.InputBuffer$from(c2, _null, 16), A.InputBuffer$from(v_dst, _null, 4)); t3 = A.InputBuffer$from(c2, _null, 32); t4 = A.InputBuffer$from(v_dst, _null, 128); t2.transformOne$2(t3, t4); t2.transformOne$2(A.InputBuffer$from(t3, _null, 16), A.InputBuffer$from(t4, _null, 4)); } else A._lateReadCheck(t3, _s4_).transformDCUV$2(c2, v_dst); } t2 = _this._mbHeight; t2.toString; if (mb_y < t2 - 1) { B.NativeUint8List_methods.setRange$4(top_yuv.y, 0, 16, y_dst.toUint8List$0(), 480); B.NativeUint8List_methods.setRange$4(top_yuv.u, 0, 8, u_dst.toUint8List$0(), 224); B.NativeUint8List_methods.setRange$4(top_yuv.v, 0, 8, v_dst.toUint8List$0(), 224); } y_out = mb_x * 16; u_out = mb_x * 8; for (j = 0; j < 16; ++j) { t2 = _this._cacheYStride; t2.toString; A._lateReadCheck(_this.__VP8__cacheY, "_cacheY").memcpy$4(y_out + j * t2, 16, y_dst, j * 32); } for (j = 0; j < 8; ++j) { t2 = _this._cacheUVStride; t2.toString; t3 = j * 32; A._lateReadCheck(_this.__VP8__cacheU, "_cacheU").memcpy$4(u_out + j * t2, 8, u_dst, t3); t2 = _this._cacheUVStride; t2.toString; A._lateReadCheck(_this.__VP8__cacheV, "_cacheV").memcpy$4(u_out + j * t2, 8, v_dst, t3); } ++mb_x; } }, _doTransform$3(bits, src, dst) { var t1, t2, t3, a, c4, d4, c1, d1, _s4_ = "_dsp"; switch (bits >>> 30) { case 3: A._lateReadCheck(this.__VP8__dsp, _s4_).transform$3(0, src, dst, false); break; case 2: A._lateReadCheck(this.__VP8__dsp, _s4_); t1 = src.buffer; t2 = src.offset; t3 = t1.length; if (!(t2 >= 0 && t2 < t3)) return A.ioore(t1, t2); a = t1[t2] + 4; t2 += 4; if (!(t2 < t3)) return A.ioore(t1, t2); c4 = B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(t1[t2] * 35468, 16), 32); t2 = src.buffer; t1 = src.offset + 4; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); d4 = B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(t2[t1] * 85627, 16), 32); t1 = src.buffer; t2 = src.offset + 1; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); c1 = B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(t1[t2] * 35468, 16), 32); t2 = src.buffer; t1 = src.offset + 1; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); d1 = B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(t2[t1] * 85627, 16), 32); A.VP8Filter__store2(dst, 0, a + d4, d1, c1); A.VP8Filter__store2(dst, 1, a + c4, d1, c1); A.VP8Filter__store2(dst, 2, a - c4, d1, c1); A.VP8Filter__store2(dst, 3, a - d4, d1, c1); break; case 1: A._lateReadCheck(this.__VP8__dsp, _s4_).transformDC$2(src, dst); break; default: break; } }, _doFilter$2(mbX, mbY) { var yDst, ilevel, limit, t2, uvBps, uDst, vDst, hevThresh, t3, u2, v2, _this = this, _null = null, _s4_ = "_dsp", yBps = _this._cacheYStride, t1 = J.$index$asx(A._lateReadCheck(_this.__VP8__fInfo, "_fInfo"), mbX); t1.toString; yDst = A.InputBuffer$from(A._lateReadCheck(_this.__VP8__cacheY, "_cacheY"), _null, mbX * 16); ilevel = t1.fInnerLevel; limit = t1.fLimit; if (limit === 0) return; if (_this._filterType === 1) { if (mbX > 0) { t2 = A._lateReadCheck(_this.__VP8__dsp, _s4_); yBps.toString; t2.simpleHFilter16$3(yDst, yBps, limit + 4); } if (t1.fInner) { t2 = A._lateReadCheck(_this.__VP8__dsp, _s4_); yBps.toString; t2.simpleHFilter16i$3(yDst, yBps, limit); } if (mbY > 0) { t2 = A._lateReadCheck(_this.__VP8__dsp, _s4_); yBps.toString; t2.simpleVFilter16$3(yDst, yBps, limit + 4); } if (t1.fInner) { t1 = A._lateReadCheck(_this.__VP8__dsp, _s4_); yBps.toString; t1.simpleVFilter16i$3(yDst, yBps, limit); } } else { uvBps = _this._cacheUVStride; t2 = mbX * 8; uDst = A.InputBuffer$from(A._lateReadCheck(_this.__VP8__cacheU, "_cacheU"), _null, t2); vDst = A.InputBuffer$from(A._lateReadCheck(_this.__VP8__cacheV, "_cacheV"), _null, t2); hevThresh = t1.hevThresh; if (mbX > 0) { t2 = A._lateReadCheck(_this.__VP8__dsp, _s4_); yBps.toString; t3 = limit + 4; t2._filterLoop26$7(yDst, 1, yBps, 16, t3, ilevel, hevThresh); t2 = A._lateReadCheck(_this.__VP8__dsp, _s4_); uvBps.toString; t2._filterLoop26$7(uDst, 1, uvBps, 8, t3, ilevel, hevThresh); t2._filterLoop26$7(vDst, 1, uvBps, 8, t3, ilevel, hevThresh); } if (t1.fInner) { t2 = A._lateReadCheck(_this.__VP8__dsp, _s4_); yBps.toString; t2.hFilter16i$5(yDst, yBps, limit, ilevel, hevThresh); t2 = A._lateReadCheck(_this.__VP8__dsp, _s4_); uvBps.toString; u2 = A.InputBuffer$from(uDst, _null, 4); v2 = A.InputBuffer$from(vDst, _null, 4); t2._filterLoop24$7(u2, 1, uvBps, 8, limit, ilevel, hevThresh); t2._filterLoop24$7(v2, 1, uvBps, 8, limit, ilevel, hevThresh); } if (mbY > 0) { t2 = A._lateReadCheck(_this.__VP8__dsp, _s4_); yBps.toString; t3 = limit + 4; t2._filterLoop26$7(yDst, yBps, 1, 16, t3, ilevel, hevThresh); t2 = A._lateReadCheck(_this.__VP8__dsp, _s4_); uvBps.toString; t2._filterLoop26$7(uDst, uvBps, 1, 8, t3, ilevel, hevThresh); t2._filterLoop26$7(vDst, uvBps, 1, 8, t3, ilevel, hevThresh); } if (t1.fInner) { t1 = A._lateReadCheck(_this.__VP8__dsp, _s4_); yBps.toString; t1.vFilter16i$5(yDst, yBps, limit, ilevel, hevThresh); t1 = A._lateReadCheck(_this.__VP8__dsp, _s4_); uvBps.toString; t2 = 4 * uvBps; u2 = A.InputBuffer$from(uDst, _null, t2); v2 = A.InputBuffer$from(vDst, _null, t2); t1._filterLoop24$7(u2, uvBps, 1, 8, limit, ilevel, hevThresh); t1._filterLoop24$7(v2, uvBps, 1, 8, limit, ilevel, hevThresh); } } }, _filterRow$0() { var t1, _this = this, mbX = A._lateReadCheck(_this.__VP8__tlMbX, "_tlMbX"); while (true) { t1 = _this._brMbX; t1.toString; if (!(mbX < t1)) break; _this._doFilter$2(mbX, _this._mbY); ++mbX; } }, _finishRow$1(useFilter) { var extraYRows, ySize, uvSize, yDst, t2, uDst, vDst, mbY, t3, yStart, yEnd, t4, deltaY, t5, t6, t7, t8, _this = this, _null = null, _s7_ = "_cacheY", _s7_0 = "_cacheU", _s7_1 = "_cacheV", _s9_ = "_cropLeft", t1 = _this._filterType; t1.toString; if (!(t1 < 3)) return A.ioore(B.List_0_2_8, t1); extraYRows = B.List_0_2_8[t1]; t1 = _this._cacheYStride; t1.toString; ySize = extraYRows * t1; t1 = _this._cacheUVStride; t1.toString; uvSize = (extraYRows / 2 | 0) * t1; t1 = -ySize; yDst = A.InputBuffer$from(A._lateReadCheck(_this.__VP8__cacheY, _s7_), _null, t1); t2 = -uvSize; uDst = A.InputBuffer$from(A._lateReadCheck(_this.__VP8__cacheU, _s7_0), _null, t2); vDst = A.InputBuffer$from(A._lateReadCheck(_this.__VP8__cacheV, _s7_1), _null, t2); mbY = _this._mbY; t3 = _this._brMbY; t3.toString; yStart = mbY * 16; yEnd = (mbY + 1) * 16; if (useFilter) _this._filterRow$0(); if (mbY !== 0) { yStart -= extraYRows; _this.__VP8__y = A.InputBuffer$from(yDst, _null, 0); _this.__VP8__u = A.InputBuffer$from(uDst, _null, 0); _this.__VP8__v = A.InputBuffer$from(vDst, _null, 0); } else { _this.__VP8__y = A.InputBuffer$from(A._lateReadCheck(_this.__VP8__cacheY, _s7_), _null, 0); _this.__VP8__u = A.InputBuffer$from(A._lateReadCheck(_this.__VP8__cacheU, _s7_0), _null, 0); _this.__VP8__v = A.InputBuffer$from(A._lateReadCheck(_this.__VP8__cacheV, _s7_1), _null, 0); } t3 = mbY < t3 - 1; if (t3) yEnd -= extraYRows; t4 = _this._cropBottom; t4.toString; if (yEnd > t4) yEnd = t4; _this._a = null; if (_this._alphaData != null && yStart < yEnd) { t4 = _this._decompressAlphaRows$2(yStart, yEnd - yStart); _this._a = t4; if (t4 == null) return false; } t4 = _this._cropTop; t4.toString; if (yStart < t4) { deltaY = t4 - yStart; t5 = A._lateReadCheck(_this.__VP8__y, "_y"); t6 = t5.offset; t7 = _this._cacheYStride; t7.toString; t5.offset = t6 + t7 * deltaY; t7 = A._lateReadCheck(_this.__VP8__u, "_u"); t6 = t7.offset; t5 = _this._cacheUVStride; t5.toString; t8 = B.JSInt_methods._shrOtherPositive$1(deltaY, 1); t7.offset = t6 + t5 * t8; t5 = A._lateReadCheck(_this.__VP8__v, "_v"); t6 = t5.offset; t7 = _this._cacheUVStride; t7.toString; t5.offset = t6 + t7 * t8; t5 = _this._a; if (t5 != null) { t6 = t5.offset; t7 = _this._webp.width; if (typeof t7 !== "number") return t7.$mul(); t5.offset = t6 + t7 * deltaY; } yStart = t4; } if (yStart < yEnd) { t4 = A._lateReadCheck(_this.__VP8__y, "_y"); t4.offset = t4.offset + A._lateReadCheck(_this.__VP8__cropLeft, _s9_); t4 = A._lateReadCheck(_this.__VP8__u, "_u"); t4.offset = t4.offset + B.JSInt_methods._shrOtherPositive$1(A._lateReadCheck(_this.__VP8__cropLeft, _s9_), 1); t4 = A._lateReadCheck(_this.__VP8__v, "_v"); t4.offset = t4.offset + B.JSInt_methods._shrOtherPositive$1(A._lateReadCheck(_this.__VP8__cropLeft, _s9_), 1); t4 = _this._a; if (t4 != null) t4.offset = t4.offset + A._lateReadCheck(_this.__VP8__cropLeft, _s9_); t4 = _this._cropTop; t4.toString; _this._put$3(0, yStart - t4, A._lateReadCheck(_this.__VP8__cropRight, "_cropRight") - A._lateReadCheck(_this.__VP8__cropLeft, _s9_), yEnd - yStart); } if (t3) { t3 = A._lateReadCheck(_this.__VP8__cacheY, _s7_); t4 = _this._cacheYStride; t4.toString; t3.memcpy$4(t1, ySize, yDst, 16 * t4); t4 = A._lateReadCheck(_this.__VP8__cacheU, _s7_0); t1 = _this._cacheUVStride; t1.toString; t4.memcpy$4(t2, uvSize, uDst, 8 * t1); t1 = A._lateReadCheck(_this.__VP8__cacheV, _s7_1); t4 = _this._cacheUVStride; t4.toString; t1.memcpy$4(t2, uvSize, vDst, 8 * t4); } return true; }, _put$3(_, mbY, mbW, mbH) { if (mbW <= 0 || mbH <= 0) return false; this._emitFancyRGB$3(mbY, mbW, mbH); this._emitAlphaRGB$3(mbY, mbW, mbH); return true; }, _clip8$1(v) { var d; if ((v & -4194304) >>> 0 === 0) d = B.JSInt_methods._shrOtherPositive$1(v, 14); else d = v < 0 ? 0 : 255; return d; }, _yuvToRgb$4(y, u, v, rgb) { var t1 = 19077 * y; rgb.$indexSet(0, 0, this._clip8$1(t1 + 26149 * v + -3644112)); rgb.$indexSet(0, 1, this._clip8$1(t1 - 6419 * u - 13320 * v + 2229552)); rgb.$indexSet(0, 2, this._clip8$1(t1 + 33050 * u + -4527440)); }, _upsample$9(topY, bottomY, topU, topV, curU, curV, topDst, bottomDst, len) { var t4, tl_uv, l_uv, uv0, x, t5, t_uv, uv, avg, diag_12, diag_03, uv1, t6, t7, t8, t9, t10, d, _this = this, _null = null, LOAD_UV = new A.VP8__upsample_LOAD_UV(), t1 = len - 1, lastPixelPair = B.JSInt_methods._shrOtherPositive$1(t1, 1), t2 = topU.buffer, t3 = topU.offset; if (!(t3 >= 0 && t3 < t2.length)) return A.ioore(t2, t3); t3 = t2[t3]; t2 = topV.buffer; t4 = topV.offset; if (!(t4 >= 0 && t4 < t2.length)) return A.ioore(t2, t4); tl_uv = LOAD_UV.call$2(t3, t2[t4]); t4 = curU.buffer; t2 = curU.offset; if (!(t2 >= 0 && t2 < t4.length)) return A.ioore(t4, t2); t2 = t4[t2]; t4 = curV.buffer; t3 = curV.offset; if (!(t3 >= 0 && t3 < t4.length)) return A.ioore(t4, t3); l_uv = LOAD_UV.call$2(t2, t4[t3]); uv0 = B.JSInt_methods._shrOtherPositive$1(3 * tl_uv + l_uv + 131074, 2); t3 = topY.buffer; t4 = topY.offset; if (!(t4 >= 0 && t4 < t3.length)) return A.ioore(t3, t4); _this._yuvToRgb$4(t3[t4], uv0 & 255, uv0 >>> 16, topDst); topDst.$indexSet(0, 3, 255); t2 = bottomY != null; if (t2) { uv0 = B.JSInt_methods._shrOtherPositive$1(3 * l_uv + tl_uv + 131074, 2); t3 = bottomY.buffer; t4 = bottomY.offset; if (!(t4 >= 0 && t4 < t3.length)) return A.ioore(t3, t4); t4 = t3[t4]; bottomDst.toString; _this._yuvToRgb$4(t4, uv0 & 255, uv0 >>> 16, bottomDst); bottomDst.$indexSet(0, 3, 255); } for (x = 1; x <= lastPixelPair; ++x, l_uv = uv, tl_uv = t_uv) { t3 = topU.buffer; t4 = topU.offset + x; if (!(t4 >= 0 && t4 < t3.length)) return A.ioore(t3, t4); t4 = t3[t4]; t3 = topV.buffer; t5 = topV.offset + x; if (!(t5 >= 0 && t5 < t3.length)) return A.ioore(t3, t5); t_uv = LOAD_UV.call$2(t4, t3[t5]); t5 = curU.buffer; t3 = curU.offset + x; if (!(t3 >= 0 && t3 < t5.length)) return A.ioore(t5, t3); t3 = t5[t3]; t5 = curV.buffer; t4 = curV.offset + x; if (!(t4 >= 0 && t4 < t5.length)) return A.ioore(t5, t4); uv = LOAD_UV.call$2(t3, t5[t4]); avg = tl_uv + t_uv + l_uv + uv + 524296; diag_12 = B.JSInt_methods._shrOtherPositive$1(avg + 2 * (t_uv + l_uv), 3); diag_03 = B.JSInt_methods._shrOtherPositive$1(avg + 2 * (tl_uv + uv), 3); uv0 = B.JSInt_methods._shrOtherPositive$1(diag_12 + tl_uv, 1); uv1 = B.JSInt_methods._shrOtherPositive$1(diag_03 + t_uv, 1); t4 = 2 * x; t5 = t4 - 1; t3 = topY.buffer; t6 = topY.offset + t5; if (!(t6 >= 0 && t6 < t3.length)) return A.ioore(t3, t6); t6 = t3[t6]; t3 = uv0 & 255; t7 = uv0 >>> 16; t8 = t5 * 4; t9 = A.InputBuffer$from(topDst, _null, t8); t6 = 19077 * t6; t10 = t6 + 26149 * t7 + -3644112; if ((t10 & -4194304) >>> 0 === 0) d = B.JSInt_methods._shrOtherPositive$1(t10, 14); else d = t10 < 0 ? 0 : 255; J.$indexSet$ax(t9.buffer, t9.offset, d); t7 = t6 - 6419 * t3 - 13320 * t7 + 2229552; if ((t7 & -4194304) >>> 0 === 0) d = B.JSInt_methods._shrOtherPositive$1(t7, 14); else d = t7 < 0 ? 0 : 255; J.$indexSet$ax(t9.buffer, t9.offset + 1, d); t3 = t6 + 33050 * t3 + -4527440; if ((t3 & -4194304) >>> 0 === 0) d = B.JSInt_methods._shrOtherPositive$1(t3, 14); else d = t3 < 0 ? 0 : 255; J.$indexSet$ax(t9.buffer, t9.offset + 2, d); J.$indexSet$ax(t9.buffer, t9.offset + 3, 255); t3 = t4 - 0; t6 = topY.buffer; t7 = topY.offset + t3; if (!(t7 >= 0 && t7 < t6.length)) return A.ioore(t6, t7); t7 = t6[t7]; t6 = uv1 & 255; t9 = uv1 >>> 16; t3 = A.InputBuffer$from(topDst, _null, t3 * 4); t7 = 19077 * t7; t10 = t7 + 26149 * t9 + -3644112; if ((t10 & -4194304) >>> 0 === 0) d = B.JSInt_methods._shrOtherPositive$1(t10, 14); else d = t10 < 0 ? 0 : 255; J.$indexSet$ax(t3.buffer, t3.offset, d); t9 = t7 - 6419 * t6 - 13320 * t9 + 2229552; if ((t9 & -4194304) >>> 0 === 0) d = B.JSInt_methods._shrOtherPositive$1(t9, 14); else d = t9 < 0 ? 0 : 255; J.$indexSet$ax(t3.buffer, t3.offset + 1, d); t6 = t7 + 33050 * t6 + -4527440; if ((t6 & -4194304) >>> 0 === 0) d = B.JSInt_methods._shrOtherPositive$1(t6, 14); else d = t6 < 0 ? 0 : 255; J.$indexSet$ax(t3.buffer, t3.offset + 2, d); J.$indexSet$ax(t3.buffer, t3.offset + 3, 255); if (t2) { uv0 = B.JSInt_methods._shrOtherPositive$1(diag_03 + l_uv, 1); uv1 = B.JSInt_methods._shrOtherPositive$1(diag_12 + uv, 1); t3 = bottomY.buffer; t5 = bottomY.offset + t5; if (!(t5 >= 0 && t5 < t3.length)) return A.ioore(t3, t5); t5 = t3[t5]; t3 = uv0 & 255; t6 = uv0 >>> 16; bottomDst.toString; t8 = A.InputBuffer$from(bottomDst, _null, t8); t5 = 19077 * t5; t7 = t5 + 26149 * t6 + -3644112; if ((t7 & -4194304) >>> 0 === 0) d = B.JSInt_methods._shrOtherPositive$1(t7, 14); else d = t7 < 0 ? 0 : 255; J.$indexSet$ax(t8.buffer, t8.offset, d); t6 = t5 - 6419 * t3 - 13320 * t6 + 2229552; if ((t6 & -4194304) >>> 0 === 0) d = B.JSInt_methods._shrOtherPositive$1(t6, 14); else d = t6 < 0 ? 0 : 255; J.$indexSet$ax(t8.buffer, t8.offset + 1, d); t3 = t5 + 33050 * t3 + -4527440; if ((t3 & -4194304) >>> 0 === 0) d = B.JSInt_methods._shrOtherPositive$1(t3, 14); else d = t3 < 0 ? 0 : 255; J.$indexSet$ax(t8.buffer, t8.offset + 2, d); J.$indexSet$ax(t8.buffer, t8.offset + 3, 255); t3 = bottomY.buffer; t5 = bottomY.offset + t4; if (!(t5 >= 0 && t5 < t3.length)) return A.ioore(t3, t5); t5 = t3[t5]; t3 = uv1 & 255; t6 = uv1 >>> 16; t4 = A.InputBuffer$from(bottomDst, _null, t4 * 4); t5 = 19077 * t5; t7 = t5 + 26149 * t6 + -3644112; if ((t7 & -4194304) >>> 0 === 0) d = B.JSInt_methods._shrOtherPositive$1(t7, 14); else d = t7 < 0 ? 0 : 255; J.$indexSet$ax(t4.buffer, t4.offset, d); t6 = t5 - 6419 * t3 - 13320 * t6 + 2229552; if ((t6 & -4194304) >>> 0 === 0) d = B.JSInt_methods._shrOtherPositive$1(t6, 14); else d = t6 < 0 ? 0 : 255; J.$indexSet$ax(t4.buffer, t4.offset + 1, d); t3 = t5 + 33050 * t3 + -4527440; if ((t3 & -4194304) >>> 0 === 0) d = B.JSInt_methods._shrOtherPositive$1(t3, 14); else d = t3 < 0 ? 0 : 255; J.$indexSet$ax(t4.buffer, t4.offset + 2, d); J.$indexSet$ax(t4.buffer, t4.offset + 3, 255); } } if ((len & 1) === 0) { uv0 = B.JSInt_methods._shrOtherPositive$1(3 * tl_uv + l_uv + 131074, 2); t3 = topY.buffer; t4 = topY.offset + t1; if (!(t4 >= 0 && t4 < t3.length)) return A.ioore(t3, t4); t4 = t3[t4]; t3 = t1 * 4; t5 = A.InputBuffer$from(topDst, _null, t3); _this._yuvToRgb$4(t4, uv0 & 255, uv0 >>> 16, t5); t5.$indexSet(0, 3, 255); if (t2) { uv0 = B.JSInt_methods._shrOtherPositive$1(3 * l_uv + tl_uv + 131074, 2); t2 = bottomY.buffer; t1 = bottomY.offset + t1; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); t1 = t2[t1]; bottomDst.toString; t3 = A.InputBuffer$from(bottomDst, _null, t3); _this._yuvToRgb$4(t1, uv0 & 255, uv0 >>> 16, t3); t3.$indexSet(0, 3, 255); } } }, _emitAlphaRGB$3(mbY, mbW, mbH) { var t2, t3, stride, alpha, numRows, startY, dst, y, x, _this = this, t1 = _this._a; if (t1 == null) return; t2 = _this._webp; t3 = t2.width; if (typeof t3 !== "number") return t3.$mul(); stride = t3 * 4; alpha = A.InputBuffer$from(t1, null, 0); if (mbY === 0) { numRows = mbH - 1; startY = mbY; } else { startY = mbY - 1; alpha.offset -= t3; numRows = mbH; } dst = A.InputBuffer$(_this.output.getBytes$0(), false, null, startY * stride + 3); t1 = _this._cropTop; t1.toString; t3 = _this._cropBottom; if (t1 + mbY + mbH === t3) { t3.toString; numRows = t3 - t1 - startY; } for (y = 0; y < numRows; ++y) { for (x = 0; x < mbW; ++x) { t1 = alpha.buffer; t3 = alpha.offset + x; if (!(t3 >= 0 && t3 < t1.length)) return A.ioore(t1, t3); t3 = t1[t3]; J.$indexSet$ax(dst.buffer, dst.offset + 4 * x, t3 & 255); } t1 = alpha.offset; t3 = t2.width; if (typeof t3 !== "number") return A.iae(t3); alpha.offset = t1 + t3; dst.offset += stride; } }, _emitFancyRGB$3(mbY, mbW, mbH) { var dst, curY, curU, curV, yEnd, uvW, stride, topU, topV, numLinesOut, y, t4, _this = this, _null = null, t1 = _this.output.getBytes$0(), t2 = _this._webp, t3 = t2.width; if (typeof t3 !== "number") return A.iae(t3); dst = A.InputBuffer$(t1, false, _null, mbY * t3 * 4); curY = A.InputBuffer$from(A._lateReadCheck(_this.__VP8__y, "_y"), _null, 0); curU = A.InputBuffer$from(A._lateReadCheck(_this.__VP8__u, "_u"), _null, 0); curV = A.InputBuffer$from(A._lateReadCheck(_this.__VP8__v, "_v"), _null, 0); yEnd = mbY + mbH; uvW = B.JSInt_methods._shrOtherPositive$1(mbW + 1, 1); t2 = t2.width; if (typeof t2 !== "number") return t2.$mul(); stride = t2 * 4; topU = A.InputBuffer$from(A._lateReadCheck(_this.__VP8__tmpU, "_tmpU"), _null, 0); topV = A.InputBuffer$from(A._lateReadCheck(_this.__VP8__tmpV, "_tmpV"), _null, 0); if (mbY === 0) { _this._upsample$9(curY, _null, curU, curV, curU, curV, dst, _null, mbW); numLinesOut = mbH; } else { _this._upsample$9(A._lateReadCheck(_this.__VP8__tmpY, "_tmpY"), curY, topU, topV, curU, curV, A.InputBuffer$from(dst, _null, -stride), dst, mbW); numLinesOut = mbH + 1; } topU.set$buffer(0, curU.buffer); topV.set$buffer(0, curV.buffer); for (t1 = 2 * stride, t2 = -stride, y = mbY; y += 2, y < yEnd;) { topU.offset = curU.offset; topV.offset = curV.offset; t3 = curU.offset; t4 = _this._cacheUVStride; t4.toString; curU.offset = t3 + t4; curV.offset += t4; dst.offset += t1; t4 = curY.offset; t3 = _this._cacheYStride; t3.toString; curY.offset = t4 + 2 * t3; _this._upsample$9(A.InputBuffer$from(curY, _null, -t3), curY, topU, topV, curU, curV, A.InputBuffer$from(dst, _null, t2), dst, mbW); } t1 = curY.offset; t2 = _this._cacheYStride; t2.toString; curY.offset = t1 + t2; t1 = _this._cropTop; t1.toString; t2 = _this._cropBottom; t2.toString; if (t1 + yEnd < t2) { A._lateReadCheck(_this.__VP8__tmpY, "_tmpY").memcpy$3(0, mbW, curY); A._lateReadCheck(_this.__VP8__tmpU, "_tmpU").memcpy$3(0, uvW, curU); A._lateReadCheck(_this.__VP8__tmpV, "_tmpV").memcpy$3(0, uvW, curV); --numLinesOut; } else if ((yEnd & 1) === 0) _this._upsample$9(curY, _null, curU, curV, curU, curV, A.InputBuffer$from(dst, _null, stride), _null, mbW); return numLinesOut; }, _decompressAlphaRows$2(row, numRows) { var t2, t3, b, t4, webp, t5, t6, t7, t8, totalNumPixels, _this = this, _null = null, _s8_ = "_buffer8", _s5_ = "_vp8l", _s11_ = "_alphaPlane", t1 = _this._webp, width = t1.width, height = t1.height; if (row < 0 || numRows <= 0 || row + numRows > height) return _null; if (row === 0) { t1 = width * height; _this.__VP8__alphaPlane = new Uint8Array(t1); t2 = _this._alphaData; t3 = new A.WebPAlpha(t2, width, height); b = t2.readByte$0(); t3.method = b & 3; t3.filter = B.JSInt_methods._shrOtherPositive$1(b, 2) & 3; t3.preProcessing = B.JSInt_methods._shrOtherPositive$1(b, 4) & 3; t3.rsrv = B.JSInt_methods._shrOtherPositive$1(b, 6) & 3; if (t3.get$isValid()) { t4 = t3.method; if (t4 === 0) { if (t2.end - t2.offset < t1) t3.rsrv = 1; } else if (t4 === 1) { webp = new A.WebPInfo(A._setArrayType([], type$.JSArray_WebPFrame)); webp.width = width; webp.height = height; t1 = A._setArrayType([], type$.JSArray_HTreeGroup); t4 = A._setArrayType([], type$.JSArray_VP8LTransform); t5 = new Uint32Array(2); t6 = new A.VP8LBitReader(t2, t5); t5 = t6.__VP8LBitReader__buffer8 = A.NativeUint8List_NativeUint8List$view(t5.buffer, 0, _null); t7 = A._lateReadCheck(t5, _s8_); t8 = t2.readByte$0(); if (0 >= t7.length) return A.ioore(t7, 0); t7[0] = t8; t8 = A._lateReadCheck(t5, _s8_); t7 = t2.readByte$0(); if (1 >= t8.length) return A.ioore(t8, 1); t8[1] = t7; t7 = A._lateReadCheck(t5, _s8_); t8 = t2.readByte$0(); if (2 >= t7.length) return A.ioore(t7, 2); t7[2] = t8; t8 = A._lateReadCheck(t5, _s8_); t7 = t2.readByte$0(); if (3 >= t8.length) return A.ioore(t8, 3); t8[3] = t7; t7 = A._lateReadCheck(t5, _s8_); t8 = t2.readByte$0(); if (4 >= t7.length) return A.ioore(t7, 4); t7[4] = t8; t8 = A._lateReadCheck(t5, _s8_); t7 = t2.readByte$0(); if (5 >= t8.length) return A.ioore(t8, 5); t8[5] = t7; t7 = A._lateReadCheck(t5, _s8_); t8 = t2.readByte$0(); if (6 >= t7.length) return A.ioore(t7, 6); t7[6] = t8; t5 = A._lateReadCheck(t5, _s8_); t2 = t2.readByte$0(); if (7 >= t5.length) return A.ioore(t5, 7); t5[7] = t2; t4 = new A.InternalVP8L(t6, webp, t1, t4); t3.__WebPAlpha__vp8l = t4; A._lateReadCheck(t4, _s5_)._ioWidth = width; A._lateReadCheck(t3.__WebPAlpha__vp8l, _s5_); t4 = A._lateReadCheck(t3.__WebPAlpha__vp8l, _s5_); t1 = webp.width; t6 = webp.height; t4._decodeImageStream$3(A._asInt(t1), A._asInt(t6), true); if (A._lateReadCheck(t3.__WebPAlpha__vp8l, _s5_)._transforms.length === 1) { t1 = A._lateReadCheck(t3.__WebPAlpha__vp8l, _s5_)._transforms; if (0 >= t1.length) return A.ioore(t1, 0); t1 = t1[0].type === 3 && A._lateReadCheck(t3.__WebPAlpha__vp8l, _s5_)._is8bOptimizable$0(); } else t1 = false; if (t1) { t3._use8bDecode = true; t1 = A._lateReadCheck(t3.__WebPAlpha__vp8l, _s5_); t2 = t1.webp; t4 = t2.width; t2 = t2.height; if (typeof t4 !== "number") return t4.$mul(); if (typeof t2 !== "number") return A.iae(t2); totalNumPixels = t4 * t2; t1._argbCache = 0; t2 = B.JSInt_methods.$mod(totalNumPixels, 4); t2 = new Uint8Array(totalNumPixels + (4 - t2)); t1.__VP8L__pixels8 = t2; t1._pixels = A.NativeUint32List_NativeUint32List$view(A._lateReadCheck(t2, "_pixels8").buffer, 0, _null); } else { t3._use8bDecode = false; A._lateReadCheck(t3.__WebPAlpha__vp8l, _s5_)._allocateInternalBuffers32b$0(); } } else t3.rsrv = 1; } _this.__VP8__alpha = t3; } if (!A._lateReadCheck(_this.__VP8__alpha, "_alpha").isAlphaDecoded) if (!A._lateReadCheck(_this.__VP8__alpha, "_alpha").decode$3(0, row, numRows, A._lateReadCheck(_this.__VP8__alphaPlane, _s11_))) return _null; return A.InputBuffer$(A._lateReadCheck(_this.__VP8__alphaPlane, _s11_), false, _null, row * width); }, _parseResiduals$2(mb, tokenBr) { var q, block, dst, leftMb, dc, nz, dc0, i, acProba, first, tnz, lnz, nonZeroY, y, l, nzCoeffs, x, nz_coeffs, outLeftNz, outTopNz, nonZeroUV, ch, t3, _this = this, bands = _this._proba.bands, t1 = _this._dqm, t2 = A._lateReadCheck(_this.__VP8__segment, "_segment"); if (t2 >>> 0 !== t2 || t2 >= 4) return A.ioore(t1, t2); q = t1[t2]; block = J.$index$asx(A._lateReadCheck(_this.__VP8__mbData, "_mbData"), _this._mbX); dst = A.InputBuffer$(block.coeffs, false, null, 0); leftMb = J.$index$asx(A._lateReadCheck(_this.__VP8__mbInfo, "_mbInfo"), 0); dst.memset$3(0, dst.end - dst.offset, 0); if (!A._lateReadCheck(block.__VP8MBData_isIntra4x4, "isIntra4x4")) { dc = A.InputBuffer$(new Int16Array(16), false, null, 0); t1 = mb.nzDc; t2 = leftMb.nzDc; if (1 >= bands.length) return A.ioore(bands, 1); nz = _this._getCoeffs$6(tokenBr, bands[1], t1 + t2, q.y2Mat, 0, dc); mb.nzDc = leftMb.nzDc = nz > 0 ? 1 : 0; if (nz > 1) _this._transformWHT$2(dc, dst); else { t1 = dc.buffer; t2 = dc.offset; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); dc0 = B.JSInt_methods._shrOtherPositive$1(t1[t2] + 3, 3); for (i = 0; i < 256; i += 16) J.$indexSet$ax(dst.buffer, dst.offset + i, dc0); } acProba = bands[0]; first = 1; } else { if (3 >= bands.length) return A.ioore(bands, 3); acProba = bands[3]; first = 0; } tnz = mb.nz & 15; lnz = leftMb.nz & 15; for (nonZeroY = 0, y = 0; y < 4; ++y) { l = lnz & 1; for (nzCoeffs = 0, x = 0; x < 4; ++x, nzCoeffs = nz_coeffs) { nz = _this._getCoeffs$6(tokenBr, acProba, l + (tnz & 1), q.y1Mat, first, dst); l = nz > first ? 1 : 0; tnz = tnz >>> 1 | l << 7; t1 = dst.buffer; t2 = dst.offset; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); t1 = t1[t2] !== 0 ? 1 : 0; if (nz > 3) t1 = 3; else if (nz > 1) t1 = 2; nz_coeffs = nzCoeffs << 2 | t1; dst.offset = t2 + 16; } tnz = tnz >>> 4; lnz = lnz >>> 1 | l << 7; nonZeroY = (nonZeroY << 8 | nzCoeffs) >>> 0; } outLeftNz = lnz >>> 4; for (t1 = bands.length, outTopNz = tnz, nonZeroUV = 0, ch = 0; ch < 4; ch += 2) { t2 = 4 + ch; tnz = B.JSInt_methods._shrBothPositive$1(mb.nz, t2); lnz = B.JSInt_methods._shrBothPositive$1(leftMb.nz, t2); for (nzCoeffs = 0, y = 0; y < 2; ++y) { l = lnz & 1; for (x = 0; x < 2; ++x, nzCoeffs = nz_coeffs) { if (2 >= t1) return A.ioore(bands, 2); nz = _this._getCoeffs$6(tokenBr, bands[2], l + (tnz & 1), q.uvMat, 0, dst); l = nz > 0 ? 1 : 0; tnz = tnz >>> 1 | l << 3; t2 = dst.buffer; t3 = dst.offset; if (!(t3 >= 0 && t3 < t2.length)) return A.ioore(t2, t3); t2 = t2[t3] !== 0 ? 1 : 0; if (nz > 3) t2 = 3; else if (nz > 1) t2 = 2; nz_coeffs = (nzCoeffs << 2 | t2) >>> 0; dst.offset = t3 + 16; } tnz = tnz >>> 2; lnz = lnz >>> 1 | l << 5; } nonZeroUV = (nonZeroUV | B.JSInt_methods._shlPositive$1(nzCoeffs, 4 * ch)) >>> 0; outTopNz = (outTopNz | B.JSInt_methods._shlPositive$1(tnz << 4 >>> 0, ch)) >>> 0; outLeftNz = (outLeftNz | B.JSInt_methods._shlPositive$1(lnz & 240, ch)) >>> 0; } mb.nz = outTopNz; leftMb.nz = outLeftNz; block.nonZeroY = nonZeroY; block.__VP8MBData_nonZeroUV = nonZeroUV; if ((nonZeroUV & 43690) === 0) q.toString; return (nonZeroY | nonZeroUV) >>> 0 === 0; }, _transformWHT$2(src, out) { var t1, t2, t3, i, t4, t5, t6, a0, t7, t8, t9, t10, a1, a2, a3, oi, dc, tmp = new Int32Array(16); for (t1 = src.buffer, t2 = src.offset, t3 = t1.length, i = 0; i < 4; ++i) { t4 = t2 + i; if (!(t4 >= 0 && t4 < t3)) return A.ioore(t1, t4); t4 = t1[t4]; t5 = 12 + i; t6 = t2 + t5; if (!(t6 >= 0 && t6 < t3)) return A.ioore(t1, t6); t6 = t1[t6]; a0 = t4 + t6; t7 = 4 + i; t8 = t2 + t7; if (!(t8 >= 0 && t8 < t3)) return A.ioore(t1, t8); t8 = t1[t8]; t9 = 8 + i; t10 = t2 + t9; if (!(t10 >= 0 && t10 < t3)) return A.ioore(t1, t10); t10 = t1[t10]; a1 = t8 + t10; a2 = t8 - t10; a3 = t4 - t6; if (!(i < 16)) return A.ioore(tmp, i); tmp[i] = a0 + a1; if (!(t9 < 16)) return A.ioore(tmp, t9); tmp[t9] = a0 - a1; tmp[t7] = a3 + a2; if (!(t5 < 16)) return A.ioore(tmp, t5); tmp[t5] = a3 - a2; } for (oi = 0, i = 0; i < 4; ++i) { t1 = i * 4; if (!(t1 < 16)) return A.ioore(tmp, t1); dc = tmp[t1] + 3; t2 = 3 + t1; if (!(t2 < 16)) return A.ioore(tmp, t2); t2 = tmp[t2]; a0 = dc + t2; t3 = 1 + t1; if (!(t3 < 16)) return A.ioore(tmp, t3); t3 = tmp[t3]; t1 = 2 + t1; if (!(t1 < 16)) return A.ioore(tmp, t1); t1 = tmp[t1]; a1 = t3 + t1; a2 = t3 - t1; a3 = dc - t2; t2 = B.JSInt_methods._shrOtherPositive$1(a0 + a1, 3); J.$indexSet$ax(out.buffer, out.offset + oi, t2); t2 = B.JSInt_methods._shrOtherPositive$1(a3 + a2, 3); J.$indexSet$ax(out.buffer, out.offset + (oi + 16), t2); t2 = B.JSInt_methods._shrOtherPositive$1(a0 - a1, 3); J.$indexSet$ax(out.buffer, out.offset + (oi + 32), t2); t2 = B.JSInt_methods._shrOtherPositive$1(a3 - a2, 3); J.$indexSet$ax(out.buffer, out.offset + (oi + 48), t2); oi += 64; } }, _getLargeValue$2(br, p) { var v, bit1, t1, cat, tab, len, i; type$.List_int._as(p); if (br.getBit$1(p[3]) === 0) v = br.getBit$1(p[4]) === 0 ? 2 : 3 + br.getBit$1(p[5]); else if (br.getBit$1(p[6]) === 0) v = br.getBit$1(p[7]) === 0 ? 5 + br.getBit$1(159) : 7 + 2 * br.getBit$1(165) + br.getBit$1(145); else { bit1 = br.getBit$1(p[8]); t1 = 9 + bit1; if (!(t1 < 11)) return A.ioore(p, t1); cat = 2 * bit1 + br.getBit$1(p[t1]); if (!(cat < 4)) return A.ioore(B.List_sao, cat); tab = B.List_sao[cat]; for (len = tab.length, v = 0, i = 0; i < len; ++i) v += v + br.getBit$1(tab[i]); v += 3 + B.JSInt_methods._shlPositive$1(8, cat); } return v; }, _getCoeffs$6(br, prob, ctx, dq, n, out) { var t1, t2, p, n0, p_ctx, v, bit, t3, shift, t4, _s6_ = "_range"; type$.List_VP8BandProbas._as(prob); type$.List_int._as(dq); t1 = prob.length; if (!(n < t1)) return A.ioore(prob, n); t2 = prob[n].probas; if (!(ctx < t2.length)) return A.ioore(t2, ctx); p = t2[ctx]; for (; n < 16; n = n0) { if (br.getBit$1(p[0]) === 0) return n; for (; br.getBit$1(p[1]) === 0;) { ++n; if (!(n >= 0 && n < 17)) return A.ioore(B.List_F1L, n); t2 = B.List_F1L[n]; if (!(t2 < t1)) return A.ioore(prob, t2); t2 = prob[t2].probas; if (0 >= t2.length) return A.ioore(t2, 0); p = t2[0]; if (n === 16) return 16; } n0 = n + 1; if (!(n0 >= 0 && n0 < 17)) return A.ioore(B.List_F1L, n0); t2 = B.List_F1L[n0]; if (!(t2 < t1)) return A.ioore(prob, t2); p_ctx = prob[t2].probas; t2 = p_ctx.length; if (br.getBit$1(p[2]) === 0) { if (1 >= t2) return A.ioore(p_ctx, 1); p = p_ctx[1]; v = 1; } else { v = this._getLargeValue$2(br, p); if (2 >= t2) return A.ioore(p_ctx, 2); p = p_ctx[2]; } if (!(n >= 0 && n < 16)) return A.ioore(B.List_cGl1, n); t2 = B.List_cGl1[n]; bit = br._bitUpdate$1(B.JSInt_methods._shrOtherPositive$1(A._lateReadCheck(br.__VP8BitReader__range, _s6_), 1)); t3 = A._lateReadCheck(br.__VP8BitReader__range, _s6_); if (t3 >>> 0 !== t3 || t3 >= 128) return A.ioore(B.List_8co0, t3); shift = B.List_8co0[t3]; t3 = A._lateReadCheck(br.__VP8BitReader__range, _s6_); if (t3 >>> 0 !== t3 || t3 >= 128) return A.ioore(B.List_wmc, t3); br.__VP8BitReader__range = B.List_wmc[t3]; br.__VP8BitReader__bits = A._lateReadCheck(br.__VP8BitReader__bits, "_bits") - shift; t3 = bit !== 0 ? -v : v; t4 = dq[n > 0 ? 1 : 0]; J.$indexSet$ax(out.buffer, out.offset + t2, t3 * t4); } return 16; }, _parseIntraMode$0() { var ymode, modes, mi, y, x, t2, prob, b, i, mi0, _this = this, _s2_ = "br", ti = 4 * _this._mbX, $top = _this._intraT, left = _this._intraL, block = J.$index$asx(A._lateReadCheck(_this.__VP8__mbData, "_mbData"), _this._mbX), t1 = A._lateReadCheck(_this.__VP8_br, _s2_).getBit$1(145) === 0; block.__VP8MBData_isIntra4x4 = t1; if (!A._lateReadCheck(t1, "isIntra4x4")) { if (A._lateReadCheck(_this.__VP8_br, _s2_).getBit$1(156) !== 0) ymode = A._lateReadCheck(_this.__VP8_br, _s2_).getBit$1(128) !== 0 ? 1 : 3; else ymode = A._lateReadCheck(_this.__VP8_br, _s2_).getBit$1(163) !== 0 ? 2 : 0; block.imodes[0] = ymode; $top.toString; B.NativeUint8List_methods.fillRange$3($top, ti, ti + 4, ymode); B.NativeUint8List_methods.fillRange$3(left, 0, 4, ymode); } else { modes = block.imodes; for (mi = 0, y = 0; y < 4; ++y, mi = mi0) { ymode = left[y]; for (x = 0; x < 4; ++x) { t1 = ti + x; if (!(t1 < $top.length)) return A.ioore($top, t1); t2 = $top[t1]; if (!(t2 < 10)) return A.ioore(B.List_799, t2); t2 = B.List_799[t2]; if (!(ymode >= 0 && ymode < 10)) return A.ioore(t2, ymode); prob = t2[ymode]; b = A._lateReadCheck(_this.__VP8_br, _s2_).getBit$1(prob[0]); if (!(b < 18)) return A.ioore(B.List_Y3m, b); i = B.List_Y3m[b]; for (; i > 0;) { t2 = A._lateReadCheck(_this.__VP8_br, _s2_); if (!(i < 9)) return A.ioore(prob, i); t2 = 2 * i + t2.getBit$1(prob[i]); if (!(t2 >= 0 && t2 < 18)) return A.ioore(B.List_Y3m, t2); i = B.List_Y3m[t2]; } ymode = -i; $top[t1] = ymode; } mi0 = mi + 4; $top.toString; B.NativeUint8List_methods.setRange$4(modes, mi, mi0, $top, ti); if (!(y < 4)) return A.ioore(left, y); left[y] = ymode; } } if (A._lateReadCheck(_this.__VP8_br, _s2_).getBit$1(142) === 0) t1 = 0; else if (A._lateReadCheck(_this.__VP8_br, _s2_).getBit$1(114) === 0) t1 = 2; else t1 = A._lateReadCheck(_this.__VP8_br, _s2_).getBit$1(183) !== 0 ? 1 : 3; block.uvmode = t1; }, set$__VP8__yuvT(__VP8__yuvT) { this.__VP8__yuvT = type$.List_VP8TopSamples._as(__VP8__yuvT); }, set$__VP8__mbInfo(__VP8__mbInfo) { this.__VP8__mbInfo = type$.List_VP8MB._as(__VP8__mbInfo); }, set$__VP8__fInfo(__VP8__fInfo) { this.__VP8__fInfo = type$.List_nullable_VP8FInfo._as(__VP8__fInfo); }, set$__VP8__mbData(__VP8__mbData) { this.__VP8__mbData = type$.List_VP8MBData._as(__VP8__mbData); }, set$__VP8__fStrengths(__VP8__fStrengths) { this.__VP8__fStrengths = type$.List_List_VP8FInfo._as(__VP8__fStrengths); } }; A.VP8__upsample_LOAD_UV.prototype = { call$2(u, v) { return (u | v << 16) >>> 0; }, $signature: 33 }; A.VP8BitReader.prototype = { getValue$1(bits) { var v, bits0; for (v = 0; bits0 = bits - 1, bits > 0; bits = bits0) v = (v | B.JSInt_methods.$shl(this.getBit$1(128), bits0)) >>> 0; return v; }, getSignedValue$1(bits) { var value = this.getValue$1(bits); return this.getValue$1(1) === 1 ? -value : value; }, getBit$1(prob) { var _this = this, bit = _this._bitUpdate$1(B.JSInt_methods._shrOtherPositive$1(A._lateReadCheck(_this.__VP8BitReader__range, "_range") * prob, 8)); if (A._lateReadCheck(_this.__VP8BitReader__range, "_range") <= 126) _this._shift$0(); return bit; }, _bitUpdate$1(split) { var t1, t2, t3, _this = this, _s5_ = "_bits", _s6_ = "_value"; if (A._lateReadCheck(_this.__VP8BitReader__bits, _s5_) < 0) { t1 = _this.input; t2 = t1.end; t3 = t1.offset; if (t2 - t3 >= 1) { _this.__VP8BitReader__value = (t1.readByte$0() | A._lateReadCheck(_this.__VP8BitReader__value, _s6_) << 8) >>> 0; _this.__VP8BitReader__bits = A._lateReadCheck(_this.__VP8BitReader__bits, _s5_) + 8; } else if (t3 < t2) { _this.__VP8BitReader__value = (t1.readByte$0() | A._lateReadCheck(_this.__VP8BitReader__value, _s6_) << 8) >>> 0; _this.__VP8BitReader__bits = A._lateReadCheck(_this.__VP8BitReader__bits, _s5_) + 8; } else if (!_this._eof) { _this.__VP8BitReader__value = A._lateReadCheck(_this.__VP8BitReader__value, _s6_) << 8 >>> 0; _this.__VP8BitReader__bits = A._lateReadCheck(_this.__VP8BitReader__bits, _s5_) + 8; _this._eof = true; } } t1 = A._lateReadCheck(_this.__VP8BitReader__bits, _s5_); if (B.JSInt_methods.$shr(A._lateReadCheck(_this.__VP8BitReader__value, _s6_), t1) > split) { t2 = split + 1; _this.__VP8BitReader__range = A._lateReadCheck(_this.__VP8BitReader__range, "_range") - t2; _this.__VP8BitReader__value = A._lateReadCheck(_this.__VP8BitReader__value, _s6_) - B.JSInt_methods.$shl(t2, t1); return 1; } else { _this.__VP8BitReader__range = split; return 0; } }, _shift$0() { var shift, _this = this, t1 = A._lateReadCheck(_this.__VP8BitReader__range, "_range"); if (t1 >>> 0 !== t1 || t1 >= 128) return A.ioore(B.List_8co0, t1); shift = B.List_8co0[t1]; t1 = A._lateReadCheck(_this.__VP8BitReader__range, "_range"); if (t1 >>> 0 !== t1 || t1 >= 128) return A.ioore(B.List_wmc, t1); _this.__VP8BitReader__range = B.List_wmc[t1]; _this.__VP8BitReader__bits = A._lateReadCheck(_this.__VP8BitReader__bits, "_bits") - shift; } }; A.VP8Filter.prototype = { simpleVFilter16$3(p, stride, thresh) { var i, p2 = A.InputBuffer$from(p, null, 0); for (i = 0; i < 16; ++i) { p2.offset = p.offset + i; if (this._needsFilter$3(p2, stride, thresh)) this._doFilter2$2(p2, stride); } }, simpleHFilter16$3(p, stride, thresh) { var i, p2 = A.InputBuffer$from(p, null, 0); for (i = 0; i < 16; ++i) { p2.offset = p.offset + i * stride; if (this._needsFilter$3(p2, 1, thresh)) this._doFilter2$2(p2, 1); } }, simpleVFilter16i$3(p, stride, thresh) { var t1, k, p2 = A.InputBuffer$from(p, null, 0); for (t1 = 4 * stride, k = 3; k > 0; --k) { p2.offset += t1; this.simpleVFilter16$3(p2, stride, thresh); } }, simpleHFilter16i$3(p, stride, thresh) { var k, p2 = A.InputBuffer$from(p, null, 0); for (k = 3; k > 0; --k) { p2.offset += 4; this.simpleHFilter16$3(p2, stride, thresh); } }, vFilter16i$5(p, stride, thresh, ithresh, hev_thresh) { var t1, k, p2 = A.InputBuffer$from(p, null, 0); for (t1 = 4 * stride, k = 3; k > 0; --k) { p2.offset += t1; this._filterLoop24$7(p2, stride, 1, 16, thresh, ithresh, hev_thresh); } }, hFilter16i$5(p, stride, thresh, ithresh, hev_thresh) { var k, p2 = A.InputBuffer$from(p, null, 0); for (k = 3; k > 0; --k) { p2.offset += 4; this._filterLoop24$7(p2, 1, stride, 16, thresh, ithresh, hev_thresh); } }, _filterLoop26$7(p, hstride, vstride, size, thresh, ithresh, hev_thresh) { var t1, t2, t3, t4, size0, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, a, a1, a2, a3, p2 = A.InputBuffer$from(p, null, 0); for (t1 = -3 * hstride, t2 = -2 * hstride, t3 = -hstride, t4 = 2 * hstride; size0 = size - 1, size > 0; size = size0) { if (this._needsFilter2$4(p2, hstride, thresh, ithresh)) if (this._hev$3(p2, hstride, hev_thresh)) this._doFilter2$2(p2, hstride); else { t5 = p2.buffer; t6 = p2.offset; t7 = t6 + t1; t8 = t5.length; if (!(t7 >= 0 && t7 < t8)) return A.ioore(t5, t7); t9 = t5[t7]; t10 = t6 + t2; if (!(t10 >= 0 && t10 < t8)) return A.ioore(t5, t10); t10 = t5[t10]; t11 = t6 + t3; if (!(t11 >= 0 && t11 < t8)) return A.ioore(t5, t11); t11 = t5[t11]; if (!(t6 >= 0 && t6 < t8)) return A.ioore(t5, t6); t12 = t5[t6]; t13 = t6 + hstride; if (!(t13 < t8)) return A.ioore(t5, t13); t13 = t5[t13]; t6 += t4; if (!(t6 < t8)) return A.ioore(t5, t6); t6 = t5[t6]; t8 = $.$get$VP8Filter_sclip1(); t14 = 1020 + t10 - t13; t8.toString; if (!(t14 >= 0 && t14 < 2041)) return A.ioore(t8, t14); t14 = 1020 + 3 * (t12 - t11) + t8[t14]; if (!(t14 >= 0 && t14 < 2041)) return A.ioore(t8, t14); a = t8[t14]; t14 = B.JSInt_methods._shrOtherPositive$1(27 * a + 63, 7); a1 = (t14 & 2147483647) - ((t14 & 2147483648) >>> 0); t14 = B.JSInt_methods._shrOtherPositive$1(18 * a + 63, 7); a2 = (t14 & 2147483647) - ((t14 & 2147483648) >>> 0); t14 = B.JSInt_methods._shrOtherPositive$1(9 * a + 63, 7); a3 = (t14 & 2147483647) - ((t14 & 2147483648) >>> 0); t14 = $.$get$VP8Filter_clip1(); t9 = 255 + t9 + a3; t14.toString; if (!(t9 >= 0 && t9 < 766)) return A.ioore(t14, t9); J.$indexSet$ax(t5, t7, t14[t9]); t9 = $.$get$VP8Filter_clip1(); t10 = 255 + t10 + a2; t9.toString; if (!(t10 >= 0 && t10 < 766)) return A.ioore(t9, t10); t10 = t9[t10]; J.$indexSet$ax(p2.buffer, p2.offset + t2, t10); t10 = $.$get$VP8Filter_clip1(); t11 = 255 + t11 + a1; t10.toString; if (!(t11 >= 0 && t11 < 766)) return A.ioore(t10, t11); t11 = t10[t11]; J.$indexSet$ax(p2.buffer, p2.offset + t3, t11); t11 = $.$get$VP8Filter_clip1(); t12 = 255 + t12 - a1; t11.toString; if (!(t12 >= 0 && t12 < 766)) return A.ioore(t11, t12); t12 = t11[t12]; J.$indexSet$ax(p2.buffer, p2.offset, t12); t12 = $.$get$VP8Filter_clip1(); t13 = 255 + t13 - a2; t12.toString; if (!(t13 >= 0 && t13 < 766)) return A.ioore(t12, t13); t13 = t12[t13]; J.$indexSet$ax(p2.buffer, p2.offset + hstride, t13); t13 = $.$get$VP8Filter_clip1(); t6 = 255 + t6 - a3; t13.toString; if (!(t6 >= 0 && t6 < 766)) return A.ioore(t13, t6); t6 = t13[t6]; J.$indexSet$ax(p2.buffer, p2.offset + t4, t6); } p2.offset += vstride; } }, _filterLoop24$7(p, hstride, vstride, size, thresh, ithresh, hev_thresh) { var t1, t2, size0, t3, t4, t5, t6, t7, t8, t9, a, t10, a1, a2, a3, p2 = A.InputBuffer$from(p, null, 0); for (t1 = -2 * hstride, t2 = -hstride; size0 = size - 1, size > 0; size = size0) { if (this._needsFilter2$4(p2, hstride, thresh, ithresh)) if (this._hev$3(p2, hstride, hev_thresh)) this._doFilter2$2(p2, hstride); else { t3 = p2.buffer; t4 = p2.offset; t5 = t4 + t1; t6 = t3.length; if (!(t5 >= 0 && t5 < t6)) return A.ioore(t3, t5); t7 = t3[t5]; t8 = t4 + t2; if (!(t8 >= 0 && t8 < t6)) return A.ioore(t3, t8); t8 = t3[t8]; if (!(t4 >= 0 && t4 < t6)) return A.ioore(t3, t4); t9 = t3[t4]; t4 += hstride; if (!(t4 < t6)) return A.ioore(t3, t4); t4 = t3[t4]; a = 3 * (t9 - t8); t6 = $.$get$VP8Filter_sclip2(); t10 = B.JSInt_methods._shrOtherPositive$1(a + 4, 3); t10 = 112 + ((t10 & 2147483647) - ((t10 & 2147483648) >>> 0)); t6.toString; if (!(t10 >= 0 && t10 < 225)) return A.ioore(t6, t10); a1 = t6[t10]; t10 = B.JSInt_methods._shrOtherPositive$1(a + 3, 3); t10 = 112 + ((t10 & 2147483647) - ((t10 & 2147483648) >>> 0)); if (!(t10 >= 0 && t10 < 225)) return A.ioore(t6, t10); a2 = t6[t10]; t10 = B.JSInt_methods._shrOtherPositive$1(a1 + 1, 1); a3 = (t10 & 2147483647) - ((t10 & 2147483648) >>> 0); t10 = $.$get$VP8Filter_clip1(); t7 = 255 + t7 + a3; t10.toString; if (!(t7 >= 0 && t7 < 766)) return A.ioore(t10, t7); J.$indexSet$ax(t3, t5, t10[t7]); t7 = $.$get$VP8Filter_clip1(); t8 = 255 + t8 + a2; t7.toString; if (!(t8 >= 0 && t8 < 766)) return A.ioore(t7, t8); t8 = t7[t8]; J.$indexSet$ax(p2.buffer, p2.offset + t2, t8); t8 = $.$get$VP8Filter_clip1(); t9 = 255 + t9 - a1; t8.toString; if (!(t9 >= 0 && t9 < 766)) return A.ioore(t8, t9); t9 = t8[t9]; J.$indexSet$ax(p2.buffer, p2.offset, t9); t9 = $.$get$VP8Filter_clip1(); t4 = 255 + t4 - a3; t9.toString; if (!(t4 >= 0 && t4 < 766)) return A.ioore(t9, t4); t4 = t9[t4]; J.$indexSet$ax(p2.buffer, p2.offset + hstride, t4); } p2.offset += vstride; } }, _doFilter2$2(p, step) { var t5, t6, t7, a, a1, a2, t1 = p.buffer, t2 = p.offset, t3 = t2 + -2 * step, t4 = t1.length; if (!(t3 >= 0 && t3 < t4)) return A.ioore(t1, t3); t3 = t1[t3]; t5 = -step; t6 = t2 + t5; if (!(t6 >= 0 && t6 < t4)) return A.ioore(t1, t6); t6 = t1[t6]; if (!(t2 >= 0 && t2 < t4)) return A.ioore(t1, t2); t7 = t1[t2]; t2 += step; if (!(t2 < t4)) return A.ioore(t1, t2); t2 = t1[t2]; t1 = $.$get$VP8Filter_sclip1(); t2 = 1020 + t3 - t2; t1.toString; if (!(t2 >= 0 && t2 < 2041)) return A.ioore(t1, t2); a = 3 * (t7 - t6) + t1[t2]; t2 = $.$get$VP8Filter_sclip2(); t1 = 112 + B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(a + 4, 3), 32); t2.toString; if (!(t1 >= 0 && t1 < 225)) return A.ioore(t2, t1); a1 = t2[t1]; t1 = $.$get$VP8Filter_sclip2(); t2 = 112 + B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(a + 3, 3), 32); t1.toString; if (!(t2 >= 0 && t2 < 225)) return A.ioore(t1, t2); a2 = t1[t2]; t2 = $.$get$VP8Filter_clip1(); t6 = 255 + t6 + a2; t2.toString; if (!(t6 >= 0 && t6 < 766)) return A.ioore(t2, t6); p.$indexSet(0, t5, t2[t6]); t6 = $.$get$VP8Filter_clip1(); t7 = 255 + t7 - a1; t6.toString; if (!(t7 >= 0 && t7 < 766)) return A.ioore(t6, t7); p.$indexSet(0, 0, t6[t7]); }, _hev$3(p, step, thresh) { var t5, t6, t1 = p.buffer, t2 = p.offset, t3 = t2 + -2 * step, t4 = t1.length; if (!(t3 >= 0 && t3 < t4)) return A.ioore(t1, t3); t3 = t1[t3]; t5 = t2 + -step; if (!(t5 >= 0 && t5 < t4)) return A.ioore(t1, t5); t5 = t1[t5]; if (!(t2 >= 0 && t2 < t4)) return A.ioore(t1, t2); t6 = t1[t2]; t2 += step; if (!(t2 < t4)) return A.ioore(t1, t2); t2 = t1[t2]; t1 = $.$get$VP8Filter_abs0(); t5 = 255 + t3 - t5; t1.toString; if (!(t5 >= 0 && t5 < 511)) return A.ioore(t1, t5); if (t1[t5] <= thresh) { t2 = 255 + t2 - t6; if (!(t2 >= 0 && t2 < 511)) return A.ioore(t1, t2); t2 = t1[t2] > thresh; t1 = t2; } else t1 = true; return t1; }, _needsFilter$3(p, step, thresh) { var t5, t6, t1 = p.buffer, t2 = p.offset, t3 = t2 + -2 * step, t4 = t1.length; if (!(t3 >= 0 && t3 < t4)) return A.ioore(t1, t3); t3 = t1[t3]; t5 = t2 + -step; if (!(t5 >= 0 && t5 < t4)) return A.ioore(t1, t5); t5 = t1[t5]; if (!(t2 >= 0 && t2 < t4)) return A.ioore(t1, t2); t6 = t1[t2]; t2 += step; if (!(t2 < t4)) return A.ioore(t1, t2); t2 = t1[t2]; t1 = $.$get$VP8Filter_abs0(); t6 = 255 + t5 - t6; t1.toString; if (!(t6 >= 0 && t6 < 511)) return A.ioore(t1, t6); t6 = t1[t6]; t1 = $.$get$VP8Filter_abs1(); t2 = 255 + t3 - t2; t1.toString; if (!(t2 >= 0 && t2 < 511)) return A.ioore(t1, t2); return 2 * t6 + t1[t2] <= thresh; }, _needsFilter2$4(p, step, t, it) { var t5, t6, t7, t8, t9, t10, t11, t12, t13, t1 = p.buffer, t2 = p.offset, t3 = t2 + -4 * step, t4 = t1.length; if (!(t3 >= 0 && t3 < t4)) return A.ioore(t1, t3); t3 = t1[t3]; t5 = t2 + -3 * step; if (!(t5 >= 0 && t5 < t4)) return A.ioore(t1, t5); t5 = t1[t5]; t6 = t2 + -2 * step; if (!(t6 >= 0 && t6 < t4)) return A.ioore(t1, t6); t6 = t1[t6]; t7 = t2 + -step; if (!(t7 >= 0 && t7 < t4)) return A.ioore(t1, t7); t7 = t1[t7]; if (!(t2 >= 0 && t2 < t4)) return A.ioore(t1, t2); t8 = t1[t2]; t9 = t2 + step; if (!(t9 < t4)) return A.ioore(t1, t9); t9 = t1[t9]; t10 = t2 + 2 * step; if (!(t10 < t4)) return A.ioore(t1, t10); t10 = t1[t10]; t2 += 3 * step; if (!(t2 < t4)) return A.ioore(t1, t2); t2 = t1[t2]; t1 = $.$get$VP8Filter_abs0(); t4 = 255 + t7 - t8; t1.toString; if (!(t4 >= 0 && t4 < 511)) return A.ioore(t1, t4); t4 = t1[t4]; t11 = $.$get$VP8Filter_abs1(); t12 = 255 + t6; t13 = t12 - t9; t11.toString; if (!(t13 >= 0 && t13 < 511)) return A.ioore(t11, t13); if (2 * t4 + t11[t13] > t) return false; t3 = 255 + t3 - t5; if (!(t3 >= 0 && t3 < 511)) return A.ioore(t1, t3); if (t1[t3] <= it) { t3 = 255 + t5 - t6; if (!(t3 >= 0 && t3 < 511)) return A.ioore(t1, t3); if (t1[t3] <= it) { t3 = t12 - t7; if (!(t3 >= 0 && t3 < 511)) return A.ioore(t1, t3); if (t1[t3] <= it) { t2 = 255 + t2 - t10; if (!(t2 >= 0 && t2 < 511)) return A.ioore(t1, t2); if (t1[t2] <= it) { t2 = 255 + t10 - t9; if (!(t2 >= 0 && t2 < 511)) return A.ioore(t1, t2); if (t1[t2] <= it) { t2 = 255 + t9 - t8; if (!(t2 >= 0 && t2 < 511)) return A.ioore(t1, t2); t2 = t1[t2] <= it; t1 = t2; } else t1 = false; } else t1 = false; } else t1 = false; } else t1 = false; } else t1 = false; return t1; }, transformOne$2(src, dst) { var t1, t2, t3, si, tmp, i, t4, t5, a, b, t6, t7, c, d, tmp0, di, dc, $C = new Int32Array(16); for (t1 = src.buffer, t2 = src.offset, t3 = t1.length, si = 0, tmp = 0, i = 0; i < 4; ++i) { t4 = t2 + si; if (!(t4 >= 0 && t4 < t3)) return A.ioore(t1, t4); t4 = t1[t4]; t5 = t2 + (si + 8); if (!(t5 >= 0 && t5 < t3)) return A.ioore(t1, t5); t5 = t1[t5]; a = t4 + t5; b = t4 - t5; t5 = t2 + (si + 4); if (!(t5 >= 0 && t5 < t3)) return A.ioore(t1, t5); t5 = t1[t5]; t4 = B.JSInt_methods._shrOtherPositive$1(t5 * 35468, 16); t6 = t2 + (si + 12); if (!(t6 >= 0 && t6 < t3)) return A.ioore(t1, t6); t6 = t1[t6]; t7 = B.JSInt_methods._shrOtherPositive$1(t6 * 85627, 16); c = (t4 & 2147483647) - ((t4 & 2147483648) >>> 0) - ((t7 & 2147483647) - ((t7 & 2147483648) >>> 0)); t5 = B.JSInt_methods._shrOtherPositive$1(t5 * 85627, 16); t6 = B.JSInt_methods._shrOtherPositive$1(t6 * 35468, 16); d = (t5 & 2147483647) - ((t5 & 2147483648) >>> 0) + ((t6 & 2147483647) - ((t6 & 2147483648) >>> 0)); tmp0 = tmp + 1; if (!(tmp < 16)) return A.ioore($C, tmp); $C[tmp] = a + d; tmp = tmp0 + 1; if (!(tmp0 < 16)) return A.ioore($C, tmp0); $C[tmp0] = b + c; tmp0 = tmp + 1; if (!(tmp < 16)) return A.ioore($C, tmp); $C[tmp] = b - c; tmp = tmp0 + 1; if (!(tmp0 < 16)) return A.ioore($C, tmp0); $C[tmp0] = a - d; ++si; } for (di = 0, tmp = 0, i = 0; i < 4; ++i) { if (!(tmp < 16)) return A.ioore($C, tmp); dc = $C[tmp] + 4; t1 = tmp + 8; if (!(t1 < 16)) return A.ioore($C, t1); t1 = $C[t1]; a = dc + t1; b = dc - t1; t1 = tmp + 4; if (!(t1 < 16)) return A.ioore($C, t1); t1 = $C[t1]; t2 = B.JSInt_methods._shrOtherPositive$1(t1 * 35468, 16); t3 = tmp + 12; if (!(t3 < 16)) return A.ioore($C, t3); t3 = $C[t3]; t4 = B.JSInt_methods._shrOtherPositive$1(t3 * 85627, 16); c = (t2 & 2147483647) - ((t2 & 2147483648) >>> 0) - ((t4 & 2147483647) - ((t4 & 2147483648) >>> 0)); t1 = B.JSInt_methods._shrOtherPositive$1(t1 * 85627, 16); t3 = B.JSInt_methods._shrOtherPositive$1(t3 * 35468, 16); d = (t1 & 2147483647) - ((t1 & 2147483648) >>> 0) + ((t3 & 2147483647) - ((t3 & 2147483648) >>> 0)); A.VP8Filter__store(dst, di, 0, 0, a + d); A.VP8Filter__store(dst, di, 1, 0, b + c); A.VP8Filter__store(dst, di, 2, 0, b - c); A.VP8Filter__store(dst, di, 3, 0, a - d); ++tmp; di += 32; } }, transform$3(_, src, dst, doTwo) { this.transformOne$2(src, dst); if (doTwo) this.transformOne$2(A.InputBuffer$from(src, null, 16), A.InputBuffer$from(dst, null, 4)); }, transformDC$2(src, dst) { var DC, j, i, t1 = src.buffer, t2 = src.offset; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); DC = t1[t2] + 4; for (j = 0; j < 4; ++j) for (i = 0; i < 4; ++i) A.VP8Filter__store(dst, 0, i, j, DC); }, transformDCUV$2(src, dst) { var _this = this, _null = null, t1 = src.buffer, t2 = src.offset; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); if (t1[t2] !== 0) _this.transformDC$2(src, dst); t1 = src.buffer; t2 = src.offset + 16; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); if (t1[t2] !== 0) _this.transformDC$2(A.InputBuffer$from(src, _null, 16), A.InputBuffer$from(dst, _null, 4)); t1 = src.buffer; t2 = src.offset + 32; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); if (t1[t2] !== 0) _this.transformDC$2(A.InputBuffer$from(src, _null, 32), A.InputBuffer$from(dst, _null, 128)); t1 = src.buffer; t2 = src.offset + 48; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); if (t1[t2] !== 0) _this.transformDC$2(A.InputBuffer$from(src, _null, 48), A.InputBuffer$from(dst, _null, 132)); } }; A.VP8FrameHeader.prototype = {}; A.VP8PictureHeader.prototype = {}; A.VP8SegmentHeader.prototype = {}; A.VP8BandProbas.prototype = {}; A.VP8Proba.prototype = {}; A.VP8FilterHeader.prototype = {}; A.VP8FInfo.prototype = {}; A.VP8MB.prototype = {}; A.VP8QuantMatrix.prototype = {}; A.VP8MBData.prototype = {}; A.VP8TopSamples.prototype = {}; A.VP8L.prototype = { decodeHeader$0() { var t2, t1 = this.br; if (t1.readBits$1(8) !== 47) return false; t2 = this.webp; t2.format = 2; t2.width = t1.readBits$1(14) + 1; t2.height = t1.readBits$1(14) + 1; t2.hasAlpha = t1.readBits$1(1) !== 0; if (t1.readBits$1(3) !== 0) return false; return true; }, decode$0(_) { var t1, t2, t3, _this = this, _null = null; _this._lastPixel = 0; if (!_this.decodeHeader$0()) return _null; t1 = _this.webp; _this._decodeImageStream$3(t1.width, t1.height, true); _this._allocateInternalBuffers32b$0(); _this.image = A.Image$(t1.width, t1.height, B.Channels_1, _null, _null); t2 = _this._pixels; t2.toString; t3 = t1.width; t1 = t1.height; if (!_this._decodeImageData$5(t2, t3, t1, t1, _this.get$_processRows())) return _null; return _this.image; }, _allocateInternalBuffers32b$0() { var pixels32, _this = this, t1 = _this.webp, t2 = t1.width; t1 = t1.height; if (typeof t2 !== "number") return t2.$mul(); if (typeof t1 !== "number") return A.iae(t1); t1 = t2 * t1 + t2; pixels32 = new Uint32Array(t1 + t2 * 16); _this._pixels = pixels32; _this.__VP8L__pixels8 = A.NativeUint8List_NativeUint8List$view(pixels32.buffer, 0, null); _this._argbCache = t1; return true; }, _readTransform$1(transformSize) { var t1, type, t2, t3, transform, numColors, bits, _this = this; type$.List_int._as(transformSize); t1 = _this.br; type = t1.readBits$1(2); t2 = _this._transformsSeen; t3 = B.JSInt_methods._shlPositive$1(1, type); if ((t2 & t3) >>> 0 !== 0) return false; _this._transformsSeen = (t2 | t3) >>> 0; transform = new A.VP8LTransform(); B.JSArray_methods.add$1(_this._transforms, transform); transform.type = type; transform.xsize = transformSize[0]; transform.ysize = transformSize[1]; switch (type) { case 0: case 1: t1 = transform.bits = t1.readBits$1(3) + 2; transform.data = _this._decodeImageStream$3(A.VP8L__subSampleSize(transform.xsize, t1), A.VP8L__subSampleSize(transform.ysize, t1), false); break; case 3: numColors = t1.readBits$1(8) + 1; if (numColors > 16) bits = 0; else if (numColors > 4) bits = 1; else { t1 = numColors > 2 ? 2 : 3; bits = t1; } B.JSArray_methods.$indexSet(transformSize, 0, A.VP8L__subSampleSize(transform.xsize, bits)); transform.bits = bits; transform.data = _this._decodeImageStream$3(numColors, 1, false); _this._expandColorMap$2(numColors, transform); break; case 2: break; default: throw A.wrapException(A.ImageException$("Invalid WebP transform type: " + type)); } return true; }, _decodeImageStream$3(xsize, ysize, isLevel0) { var t1, t2, transformYsize, transformXsize, sizes, colorCacheBits, numBits, data, _this = this; A._asInt(xsize); A._asInt(ysize); if (isLevel0) { for (t1 = _this.br, t2 = type$.JSArray_int, transformYsize = ysize, transformXsize = xsize; t1.readBits$1(1) !== 0;) { sizes = A._setArrayType([transformXsize, transformYsize], t2); if (!_this._readTransform$1(sizes)) throw A.wrapException(A.ImageException$("Invalid Transform")); transformXsize = sizes[0]; transformYsize = sizes[1]; } isLevel0 = true; } else { transformYsize = ysize; transformXsize = xsize; } t1 = _this.br; if (t1.readBits$1(1) !== 0) { colorCacheBits = t1.readBits$1(4); if (!(colorCacheBits >= 1 && colorCacheBits <= 11)) throw A.wrapException(A.ImageException$("Invalid Color Cache")); } else colorCacheBits = 0; if (!_this._readHuffmanCodes$4(transformXsize, transformYsize, colorCacheBits, isLevel0)) throw A.wrapException(A.ImageException$("Invalid Huffman Codes")); if (colorCacheBits > 0) { t1 = B.JSInt_methods._shlPositive$1(1, colorCacheBits); _this._colorCacheSize = t1; _this._colorCache = new A.VP8LColorCache(new Uint32Array(t1), 32 - colorCacheBits); } else _this._colorCacheSize = 0; t1 = _this.webp; t1.width = transformXsize; t1.height = transformYsize; numBits = _this._huffmanSubsampleBits; _this._huffmanXsize = A.VP8L__subSampleSize(transformXsize, numBits); _this._huffmanMask = numBits === 0 ? 4294967295 : B.JSInt_methods._shlPositive$1(1, numBits) - 1; if (isLevel0) { _this._lastPixel = 0; return null; } data = new Uint32Array(transformXsize * transformYsize); if (!_this._decodeImageData$5(data, transformXsize, transformYsize, transformYsize, null)) throw A.wrapException(A.ImageException$("Failed to decode image data.")); _this._lastPixel = 0; return data; }, _decodeImageData$5(data, width, height, lastRow, processFunc) { var t1, row, col, htreeGroup, src, srcEnd, srcLast, colorCacheLimit, colorCache, mask, t2, t3, lastCached, t4, t5, metaIndex, code, red, blue, t6, t7, key, $length, distSymbol, dist, dst, i, key0, _this = this; A._asInt(width); A._asInt(height); A._asInt(lastRow); type$.nullable_void_Function_int._as(processFunc); t1 = _this._lastPixel; row = B.JSInt_methods.$tdiv(t1, width); col = B.JSInt_methods.$mod(t1, width); htreeGroup = _this._getHtreeGroupForPos$2(col, row); src = _this._lastPixel; srcEnd = width * height; srcLast = width * lastRow; t1 = _this._colorCacheSize; colorCacheLimit = 280 + t1; colorCache = t1 > 0 ? _this._colorCache : null; mask = _this._huffmanMask; t1 = data.length; t2 = _this.br; t3 = processFunc != null; lastCached = src; while (true) { t4 = t2._vp8l_bit_reader$_input; t5 = t4.end; if (!(!(t4.offset >= t5 && t2.bitPos >= 64) && src < srcLast)) break; if ((col & mask) >>> 0 === 0) { metaIndex = _this._getMetaIndex$5(_this._huffmanImage, _this._huffmanXsize, _this._huffmanSubsampleBits, col, row); t4 = _this._htreeGroups; if (!(metaIndex < t4.length)) return A.ioore(t4, metaIndex); htreeGroup = t4[metaIndex]; } if (t2.bitPos >= 32) t2._shiftBytes$0(); t4 = htreeGroup.htrees; t5 = t4.length; if (0 >= t5) return A.ioore(t4, 0); code = t4[0].readSymbol$1(t2); if (code < 256) { if (1 >= t5) return A.ioore(t4, 1); red = t4[1].readSymbol$1(t2); if (t2.bitPos >= 32) t2._shiftBytes$0(); if (2 >= t5) return A.ioore(t4, 2); blue = t4[2].readSymbol$1(t2); if (3 >= t5) return A.ioore(t4, 3); t4 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(t4[3].readSymbol$1(t2), 0, 255)); t5 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(red, 0, 255)); t6 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(code, 0, 255)); t7 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(blue, 0, 255)); if (!(src >= 0 && src < t1)) return A.ioore(data, src); data[src] = (t4 << 24 | t5 << 16 | t6 << 8 | t7) >>> 0; ++src; ++col; if (col >= width) { ++row; if (B.JSInt_methods.$mod(row, 16) === 0 && t3) processFunc.call$1(row); if (colorCache != null) for (t4 = colorCache.hashShift, t5 = colorCache.colors, t6 = t5.length; lastCached < src;) { if (!(lastCached >= 0)) return A.ioore(data, lastCached); t7 = data[lastCached]; key = B.JSInt_methods._shrReceiverPositive$1(t7 * 506832829 >>> 0, t4); if (!(key < t6)) return A.ioore(t5, key); t5[key] = t7; ++lastCached; } col = 0; } } else if (code < 280) { $length = _this._getCopyDistance$1(code - 256); if (4 >= t5) return A.ioore(t4, 4); distSymbol = t4[4].readSymbol$1(t2); if (t2.bitPos >= 32) t2._shiftBytes$0(); dist = _this._planeCodeToDistance$2(width, _this._getCopyDistance$1(distSymbol)); if (src < dist || srcEnd - src < $length) return false; else { dst = src - dist; for (i = 0; i < $length; ++i) { t4 = src + i; t5 = dst + i; if (!(t5 >= 0 && t5 < t1)) return A.ioore(data, t5); t5 = data[t5]; if (!(t4 >= 0 && t4 < t1)) return A.ioore(data, t4); data[t4] = t5; } src += $length; } col += $length; for (; col >= width;) { col -= width; ++row; if (B.JSInt_methods.$mod(row, 16) === 0 && t3) processFunc.call$1(row); } if (src < srcLast) { if ((col & mask) >>> 0 !== 0) { metaIndex = _this._getMetaIndex$5(_this._huffmanImage, _this._huffmanXsize, _this._huffmanSubsampleBits, col, row); t4 = _this._htreeGroups; if (!(metaIndex < t4.length)) return A.ioore(t4, metaIndex); htreeGroup = t4[metaIndex]; } if (colorCache != null) for (t4 = colorCache.hashShift, t5 = colorCache.colors, t6 = t5.length; lastCached < src;) { if (!(lastCached >= 0 && lastCached < t1)) return A.ioore(data, lastCached); t7 = data[lastCached]; key = B.JSInt_methods._shrReceiverPositive$1(t7 * 506832829 >>> 0, t4); if (!(key < t6)) return A.ioore(t5, key); t5[key] = t7; ++lastCached; } } } else if (code < colorCacheLimit) { key = code - 280; for (; lastCached < src;) { colorCache.toString; if (!(lastCached >= 0 && lastCached < t1)) return A.ioore(data, lastCached); t4 = data[lastCached]; key0 = B.JSInt_methods._shrReceiverPositive$1(t4 * 506832829 >>> 0, colorCache.hashShift); t5 = colorCache.colors; if (!(key0 < t5.length)) return A.ioore(t5, key0); t5[key0] = t4; ++lastCached; } t4 = colorCache.colors; t5 = t4.length; if (!(key < t5)) return A.ioore(t4, key); t6 = t4[key]; if (!(src >= 0 && src < t1)) return A.ioore(data, src); data[src] = t6; ++src; ++col; if (col >= width) { ++row; if (B.JSInt_methods.$mod(row, 16) === 0 && t3) processFunc.call$1(row); for (t6 = colorCache.hashShift; lastCached < src;) { if (!(lastCached >= 0)) return A.ioore(data, lastCached); t7 = data[lastCached]; key = B.JSInt_methods._shrReceiverPositive$1(t7 * 506832829 >>> 0, t6); if (!(key < t5)) return A.ioore(t4, key); t4[key] = t7; ++lastCached; } col = 0; } } else return false; } if (t3) processFunc.call$1(row); if (t4.offset >= t5 && t2.bitPos >= 64 && src < srcEnd) return false; _this._lastPixel = src; return true; }, _is8bOptimizable$0() { var t1, t2, t3, i, htrees, t4; if (this._colorCacheSize > 0) return false; for (t1 = this._numHtreeGroups, t2 = this._htreeGroups, t3 = t2.length, i = 0; i < t1; ++i) { if (!(i < t3)) return A.ioore(t2, i); htrees = t2[i].htrees; t4 = htrees.length; if (1 >= t4) return A.ioore(htrees, 1); if (htrees[1].numNodes > 1) return false; if (2 >= t4) return A.ioore(htrees, 2); if (htrees[2].numNodes > 1) return false; if (3 >= t4) return A.ioore(htrees, 3); if (htrees[3].numNodes > 1) return false; } return true; }, _extractAlphaRows$1(row) { var t2, t3, width, cachePixs, di, src, t4, i, t5, t6, _this = this, t1 = _this._lastRow, numRows = row - t1; if (numRows <= 0) return; t2 = _this.webp; t3 = t2.width; if (typeof t3 !== "number") return t3.$mul(); _this._applyInverseTransforms$2(numRows, t3 * t1); width = t2.width; cachePixs = width * numRows; di = width * _this._lastRow; t2 = _this._pixels; t2.toString; t1 = _this._argbCache; t1.toString; src = A.InputBuffer$(t2, false, null, t1); for (t1 = _this._opaque, t2 = src.buffer, t3 = src.offset, t4 = t2.length, i = 0; i < cachePixs; ++i) { t1.toString; t5 = di + i; t6 = t3 + i; if (!(t6 >= 0 && t6 < t4)) return A.ioore(t2, t6); t6 = B.JSInt_methods._shrOtherPositive$1(t2[t6], 8); if (!(t5 >= 0 && t5 < t1.length)) return A.ioore(t1, t5); t1[t5] = t6 & 255; } _this._lastRow = row; }, _decodeAlphaData$3(width, height, lastRow) { var t2, metaIndex, t3, code, $length, distSymbol, dist, i, t4, t5, _this = this, _s8_ = "_pixels8", t1 = _this._lastPixel, row = B.JSInt_methods.$tdiv(t1, width), col = B.JSInt_methods.$mod(t1, width), htreeGroup = _this._getHtreeGroupForPos$2(col, row), pos = _this._lastPixel, end = width * height, last = width * lastRow, mask = _this._huffmanMask; t1 = _this.br; while (true) { t2 = t1._vp8l_bit_reader$_input; if (!(!(t2.offset >= t2.end && t1.bitPos >= 64) && pos < last)) break; if ((col & mask) >>> 0 === 0) { metaIndex = _this._getMetaIndex$5(_this._huffmanImage, _this._huffmanXsize, _this._huffmanSubsampleBits, col, row); t2 = _this._htreeGroups; if (!(metaIndex < t2.length)) return A.ioore(t2, metaIndex); htreeGroup = t2[metaIndex]; } if (t1.bitPos >= 32) t1._shiftBytes$0(); t2 = htreeGroup.htrees; t3 = t2.length; if (0 >= t3) return A.ioore(t2, 0); code = t2[0].readSymbol$1(t1); if (code < 256) { t2 = A._lateReadCheck(_this.__VP8L__pixels8, _s8_); if (!(pos >= 0 && pos < t2.length)) return A.ioore(t2, pos); t2[pos] = code; ++pos; ++col; if (col >= width) { ++row; if (B.JSInt_methods.$mod(row, 16) === 0) _this._extractPalettedAlphaRows$1(row); col = 0; } } else if (code < 280) { $length = _this._getCopyDistance$1(code - 256); if (4 >= t3) return A.ioore(t2, 4); distSymbol = t2[4].readSymbol$1(t1); if (t1.bitPos >= 32) t1._shiftBytes$0(); dist = _this._planeCodeToDistance$2(width, _this._getCopyDistance$1(distSymbol)); if (pos >= dist && end - pos >= $length) for (i = 0; i < $length; ++i) { t2 = A._lateReadCheck(_this.__VP8L__pixels8, _s8_); t3 = pos + i; t4 = A._lateReadCheck(_this.__VP8L__pixels8, _s8_); t5 = t3 - dist; if (!(t5 >= 0 && t5 < t4.length)) return A.ioore(t4, t5); t5 = t4[t5]; if (!(t3 >= 0 && t3 < t2.length)) return A.ioore(t2, t3); t2[t3] = t5; } else { _this._lastPixel = pos; return true; } pos += $length; col += $length; for (; col >= width;) { col -= width; ++row; if (B.JSInt_methods.$mod(row, 16) === 0) _this._extractPalettedAlphaRows$1(row); } if (pos < last && (col & mask) >>> 0 !== 0) { metaIndex = _this._getMetaIndex$5(_this._huffmanImage, _this._huffmanXsize, _this._huffmanSubsampleBits, col, row); t2 = _this._htreeGroups; if (!(metaIndex < t2.length)) return A.ioore(t2, metaIndex); htreeGroup = t2[metaIndex]; } } else return false; } _this._extractPalettedAlphaRows$1(row); _this._lastPixel = pos; return true; }, _extractPalettedAlphaRows$1(row) { var pIn, rowsOut, _this = this, numRows = row - _this._lastRow, t1 = A._lateReadCheck(_this.__VP8L__pixels8, "_pixels8"), t2 = _this.webp.width, t3 = _this._lastRow; if (typeof t2 !== "number") return t2.$mul(); pIn = A.InputBuffer$(t1, false, null, t2 * t3); if (numRows > 0) { t1 = _this._opaque; t1.toString; t2 = _this._ioWidth; t2.toString; rowsOut = A.InputBuffer$(t1, false, null, t2 * t3); t2 = _this._transforms; if (0 >= t2.length) return A.ioore(t2, 0); t2[0].colorIndexInverseTransformAlpha$4(t3, t3 + numRows, pIn, rowsOut); } _this._lastRow = row; }, _processRows$1(row) { var numRows, dy, pi, y, x, c, t4, t5, t6, t7, _this = this, t1 = _this.webp, t2 = t1.width, t3 = _this._lastRow; if (typeof t2 !== "number") return t2.$mul(); numRows = row - t3; if (numRows <= 0) return; _this._applyInverseTransforms$2(numRows, t2 * t3); t2 = _this._argbCache; t2.toString; dy = _this._lastRow; pi = t2; y = 0; for (; y < numRows; ++y, ++dy) { x = 0; while (true) { t2 = t1.width; if (typeof t2 !== "number") return A.iae(t2); if (!(x < t2)) break; t2 = _this._pixels; if (!(pi >= 0 && pi < t2.length)) return A.ioore(t2, pi); c = t2[pi]; t2 = _this.image; t2.toString; t3 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(c >>> 24 & 255, 0, 255)); t4 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(c & 255, 0, 255)); t5 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(c >>> 8 & 255, 0, 255)); t6 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(c >>> 16 & 255, 0, 255)); t7 = t2.data; t2 = dy * t2.width + x; if (!(t2 >= 0 && t2 < t7.length)) return A.ioore(t7, t2); t7[t2] = (t3 << 24 | t4 << 16 | t5 << 8 | t6) >>> 0; ++x; ++pi; } } _this._lastRow = row; }, _applyInverseTransforms$2(numRows, rows) { var startRow, endRow, t3, t4, rowsIn, n0, transform, t5, width, start, t6, inStride, src, _this = this, t1 = _this._transforms, n = t1.length, t2 = _this.webp.width; if (typeof t2 !== "number") return t2.$mul(); startRow = _this._lastRow; endRow = startRow + numRows; t3 = _this._argbCache; t3.toString; t4 = _this._pixels; t4.toString; B.NativeUint32List_methods.setRange$4(t4, t3, t3 + t2 * numRows, t4, rows); for (t2 = endRow - startRow, t4 = t2 - 1, rowsIn = rows; n0 = n - 1, n > 0; rowsIn = t3, n = n0) { if (!(n0 >= 0 && n0 < t1.length)) return A.ioore(t1, n0); transform = t1[n0]; t5 = _this._pixels; t5.toString; width = transform.xsize; switch (transform.type) { case 2: transform.addGreenToBlueAndRed$3(t5, t3, t3 + t2 * width); break; case 0: transform.predictorInverseTransform$4(startRow, endRow, t5, t3); if (endRow !== transform.ysize) { start = t3 - width; B.NativeUint32List_methods.setRange$4(t5, start, start + width, t5, t3 + t4 * width); } break; case 1: transform.colorSpaceInverseTransform$4(startRow, endRow, t5, t3); break; case 3: if (rowsIn === t3 && transform.bits > 0) { t6 = transform.bits; inStride = t2 * B.JSInt_methods._shrOtherPositive$1(width + B.JSInt_methods._shlPositive$1(1, t6) - 1, t6); src = t3 + t2 * width - inStride; B.NativeUint32List_methods.setRange$4(t5, src, src + inStride, t5, t3); transform.colorIndexInverseTransform$6(startRow, endRow, t5, src, t5, t3); } else transform.colorIndexInverseTransform$6(startRow, endRow, t5, rowsIn, t5, t3); break; } } }, _readHuffmanCodes$4(xsize, ysize, colorCacheBits, allowRecursion) { var huffmanPrecision, huffmanXsize, huffmanYsize, huffmanPixs, huffmanImage, numHtreeGroups, i, group, htreeGroups, _i, t1, j, alphabetSize, t2, _this = this; if (allowRecursion && _this.br.readBits$1(1) !== 0) { huffmanPrecision = _this.br.readBits$1(3) + 2; huffmanXsize = A.VP8L__subSampleSize(xsize, huffmanPrecision); huffmanYsize = A.VP8L__subSampleSize(ysize, huffmanPrecision); huffmanPixs = huffmanXsize * huffmanYsize; huffmanImage = _this._decodeImageStream$3(huffmanXsize, huffmanYsize, false); _this._huffmanSubsampleBits = huffmanPrecision; for (numHtreeGroups = 1, i = 0; i < huffmanPixs; ++i) { if (!(i < huffmanImage.length)) return A.ioore(huffmanImage, i); group = huffmanImage[i] >>> 8 & 65535; huffmanImage[i] = group; if (group >= numHtreeGroups) numHtreeGroups = group + 1; } } else { huffmanImage = null; numHtreeGroups = 1; } htreeGroups = J.JSArray_JSArray$allocateFixed(numHtreeGroups, type$.HTreeGroup); for (_i = 0; _i < numHtreeGroups; ++_i) htreeGroups[_i] = A.HTreeGroup$(); for (t1 = colorCacheBits > 0, i = 0; i < numHtreeGroups; ++i) for (j = 0; j < 5; ++j) { alphabetSize = B.List_yTu[j]; if (j === 0 && t1) alphabetSize += B.JSInt_methods._shlPositive$1(1, colorCacheBits); if (!(i < numHtreeGroups)) return A.ioore(htreeGroups, i); t2 = htreeGroups[i].htrees; if (!(j < t2.length)) return A.ioore(t2, j); if (!_this._readHuffmanCode$2(alphabetSize, t2[j])) return false; } _this._huffmanImage = huffmanImage; _this._numHtreeGroups = numHtreeGroups; _this.set$_htreeGroups(htreeGroups); return true; }, _readHuffmanCode$2(alphabetSize, tree) { var t2, symbols, codes, codeLengths, numSymbols, ok, codeLengthCodeLengths, numCodes, i, t3, t1 = this.br; if (t1.readBits$1(1) !== 0) { t2 = type$.JSArray_int; symbols = A._setArrayType([0, 0], t2); codes = A._setArrayType([0, 0], t2); codeLengths = A._setArrayType([0, 0], t2); numSymbols = t1.readBits$1(1) + 1; B.JSArray_methods.$indexSet(symbols, 0, t1.readBits$1(t1.readBits$1(1) === 0 ? 1 : 8)); B.JSArray_methods.$indexSet(codes, 0, 0); t2 = numSymbols - 1; B.JSArray_methods.$indexSet(codeLengths, 0, t2); if (numSymbols === 2) { B.JSArray_methods.$indexSet(symbols, 1, t1.readBits$1(8)); B.JSArray_methods.$indexSet(codes, 1, 1); B.JSArray_methods.$indexSet(codeLengths, 1, t2); } ok = tree.buildExplicit$5(codeLengths, codes, symbols, alphabetSize, numSymbols); } else { codeLengthCodeLengths = new Int32Array(19); numCodes = t1.readBits$1(4) + 4; if (numCodes > 19) return false; codeLengths = new Int32Array(alphabetSize); for (i = 0; i < numCodes; ++i) { t2 = B.List_uSC0[i]; t3 = t1.readBits$1(3); if (!(t2 < 19)) return A.ioore(codeLengthCodeLengths, t2); codeLengthCodeLengths[t2] = t3; } ok = this._readHuffmanCodeLengths$3(codeLengthCodeLengths, alphabetSize, codeLengths); if (ok) ok = tree.buildImplicit$2(codeLengths, alphabetSize); } return ok; }, _readHuffmanCodeLengths$3(codeLengthCodeLengths, numSymbols, codeLengths) { var tree, max_symbol, t2, symbol, prev_code_len, max_symbol0, code_len, symbol0, slot, extra_bits, repeat_offset, repeat, $length, repeat0, t1 = type$.List_int; t1._as(codeLengthCodeLengths); t1._as(codeLengths); tree = A.HuffmanTree$(); if (!tree.buildImplicit$2(codeLengthCodeLengths, 19)) return false; t1 = this.br; if (t1.readBits$1(1) !== 0) { max_symbol = 2 + t1.readBits$1(2 + 2 * t1.readBits$1(3)); if (max_symbol > numSymbols) return false; } else max_symbol = numSymbols; for (t2 = codeLengths.length, symbol = 0, prev_code_len = 8; symbol < numSymbols; max_symbol = max_symbol0) { max_symbol0 = max_symbol - 1; if (max_symbol === 0) break; if (t1.bitPos >= 32) t1._shiftBytes$0(); code_len = tree.readSymbol$1(t1); if (code_len < 16) { symbol0 = symbol + 1; if (!(symbol >= 0 && symbol < t2)) return A.ioore(codeLengths, symbol); codeLengths[symbol] = code_len; if (code_len !== 0) prev_code_len = code_len; symbol = symbol0; } else { slot = code_len - 16; if (!(slot < 3)) return A.ioore(B.List_2_3_7, slot); extra_bits = B.List_2_3_7[slot]; repeat_offset = B.List_3_3_11[slot]; repeat = t1.readBits$1(extra_bits) + repeat_offset; if (symbol + repeat > numSymbols) return false; else { $length = code_len === 16 ? prev_code_len : 0; for (; repeat0 = repeat - 1, repeat > 0; repeat = repeat0, symbol = symbol0) { symbol0 = symbol + 1; if (!(symbol >= 0 && symbol < t2)) return A.ioore(codeLengths, symbol); codeLengths[symbol] = $length; } } } } return true; }, _getCopyDistance$1(distanceSymbol) { var extraBits; if (distanceSymbol < 4) return distanceSymbol + 1; extraBits = B.JSInt_methods._shrOtherPositive$1(distanceSymbol - 2, 1); return B.JSInt_methods._shlPositive$1(2 + (distanceSymbol & 1), extraBits) + this.br.readBits$1(extraBits) + 1; }, _planeCodeToDistance$2(xsize, planeCode) { var t1, distCode, dist; if (planeCode > 120) return planeCode - 120; else { t1 = planeCode - 1; if (!(t1 >= 0)) return A.ioore(B.List_AYZ, t1); distCode = B.List_AYZ[t1]; dist = (distCode >>> 4) * xsize + (8 - (distCode & 15)); return dist >= 1 ? dist : 1; } }, _expandColorMap$2(numColors, transform) { var len, t2, i, t3, t4, finalNumColors = B.JSInt_methods._shlPositive$1(1, B.JSInt_methods._shrBothPositive$1(8, transform.bits)), newColorMap = new Uint32Array(finalNumColors), data = A.NativeUint8List_NativeUint8List$view(transform.data.buffer, 0, null), newData = A.NativeUint8List_NativeUint8List$view(newColorMap.buffer, 0, null), t1 = transform.data; if (0 >= t1.length) return A.ioore(t1, 0); t1 = t1[0]; if (0 >= finalNumColors) return A.ioore(newColorMap, 0); newColorMap[0] = t1; len = 4 * numColors; for (t1 = data.length, t2 = newData.length, i = 4; i < len; ++i) { if (!(i < t1)) return A.ioore(data, i); t3 = data[i]; t4 = i - 4; if (!(t4 < t2)) return A.ioore(newData, t4); t4 = newData[t4]; if (!(i < t2)) return A.ioore(newData, i); newData[i] = t3 + t4 & 255; } for (len = 4 * finalNumColors; i < len; ++i) { if (!(i < t2)) return A.ioore(newData, i); newData[i] = 0; } transform.data = newColorMap; return true; }, _getMetaIndex$5(image, xsize, bits, x, y) { var t1; if (bits === 0) return 0; image.toString; t1 = xsize * B.JSInt_methods._shrOtherPositive$1(y, bits) + B.JSInt_methods._shrOtherPositive$1(x, bits); if (!(t1 < image.length)) return A.ioore(image, t1); return image[t1]; }, _getHtreeGroupForPos$2(x, y) { var _this = this, metaIndex = _this._getMetaIndex$5(_this._huffmanImage, _this._huffmanXsize, _this._huffmanSubsampleBits, x, y), t1 = _this._htreeGroups; if (!(metaIndex < t1.length)) return A.ioore(t1, metaIndex); return t1[metaIndex]; }, set$_htreeGroups(_htreeGroups) { this._htreeGroups = type$.List_HTreeGroup._as(_htreeGroups); } }; A.InternalVP8L.prototype = { extractAlphaRows$1(row) { return this._extractAlphaRows$1(row); } }; A.VP8LBitReader.prototype = { prefetchBits$0() { var t2, t3, b2, t1 = this.bitPos; if (t1 < 32) { t2 = this._vp8l_bit_reader$_buffer; t3 = B.JSInt_methods._shrReceiverPositive$1(t2[0], t1); t2 = t2[1]; if (!(t1 >= 0)) return A.ioore(B.List_DKo, t1); b2 = t3 + ((t2 & B.List_DKo[t1]) >>> 0) * (B.List_DKo[32 - t1] + 1); } else { t2 = this._vp8l_bit_reader$_buffer; b2 = t1 === 32 ? t2[1] : B.JSInt_methods._shrReceiverPositive$1(t2[1], t1 - 32); } return b2; }, readBits$1(numBits) { var t2, _this = this, t1 = _this._vp8l_bit_reader$_input; if (!(t1.offset >= t1.end && _this.bitPos >= 64) && numBits < 25) { t1 = _this.prefetchBits$0(); if (!(numBits < 33)) return A.ioore(B.List_DKo, numBits); t2 = B.List_DKo[numBits]; _this.bitPos += numBits; _this._shiftBytes$0(); return (t1 & t2) >>> 0; } else throw A.wrapException(A.ImageException$("Not enough data in input.")); }, _shiftBytes$0() { var t4, t5, t6, t7, _this = this, t1 = _this._vp8l_bit_reader$_input, t2 = _this._vp8l_bit_reader$_buffer, t3 = t1.end; while (true) { t4 = _this.bitPos; if (!(t4 >= 8 && t1.offset < t3)) break; t5 = t1.buffer; t6 = t1.offset++; if (!(t6 >= 0 && t6 < t5.length)) return A.ioore(t5, t6); t6 = t5[t6]; t5 = t2[0]; t7 = t2[1]; t2[0] = (t5 >>> 8) + (t7 & 255) * 16777216; t2[1] = t7 >>> 8; t2[1] = (t2[1] | t6 * 16777216) >>> 0; _this.bitPos = t4 - 8; } } }; A.VP8LColorCache.prototype = {}; A.VP8LTransform.prototype = { colorIndexInverseTransformAlpha$4(yStart, yEnd, src, dst) { var countMask, bit_mask, y, packed_pixels, x, t2, t1 = this.bits, bitsPerPixel = B.JSInt_methods._shrBothPositive$1(8, t1), width = this.xsize, colorMap = this.data; if (bitsPerPixel < 8) { countMask = B.JSInt_methods._shlPositive$1(1, t1) - 1; bit_mask = B.JSInt_methods._shlPositive$1(1, bitsPerPixel) - 1; for (y = yStart; y < yEnd; ++y) for (packed_pixels = 0, x = 0; x < width; ++x) { if ((x & countMask) >>> 0 === 0) { t1 = src.buffer; t2 = src.offset; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); packed_pixels = t1[t2]; src.offset = t2 + 1; } t1 = (packed_pixels & bit_mask) >>> 0; if (!(t1 >= 0 && t1 < colorMap.length)) return A.ioore(colorMap, t1); t1 = colorMap[t1]; J.$indexSet$ax(dst.buffer, dst.offset, t1 >>> 8 & 255); ++dst.offset; packed_pixels = B.JSInt_methods._shrOtherPositive$1(packed_pixels, bitsPerPixel); } } else for (y = yStart; y < yEnd; ++y) for (x = 0; x < width; ++x) { t1 = src.buffer; t2 = src.offset; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); t1 = t1[t2]; src.offset = t2 + 1; if (t1 >>> 0 !== t1 || t1 >= colorMap.length) return A.ioore(colorMap, t1); t1 = colorMap[t1]; J.$indexSet$ax(dst.buffer, dst.offset, t1 >>> 8 & 255); ++dst.offset; } }, colorIndexInverseTransform$6(yStart, yEnd, inData, src, outData, dst) { var countMask, bit_mask, t2, y, packed_pixels, x, src0, dst0, t3, t1 = this.bits, bitsPerPixel = B.JSInt_methods._shrBothPositive$1(8, t1), width = this.xsize, colorMap = this.data; if (bitsPerPixel < 8) { countMask = B.JSInt_methods._shlPositive$1(1, t1) - 1; bit_mask = B.JSInt_methods._shlPositive$1(1, bitsPerPixel) - 1; for (t1 = outData.length, t2 = inData.length, y = yStart; y < yEnd; ++y) for (packed_pixels = 0, x = 0; x < width; ++x, dst = dst0) { if ((x & countMask) >>> 0 === 0) { src0 = src + 1; if (!(src >= 0 && src < t2)) return A.ioore(inData, src); packed_pixels = inData[src] >>> 8 & 255; src = src0; } dst0 = dst + 1; t3 = packed_pixels & bit_mask; if (!(t3 >= 0 && t3 < colorMap.length)) return A.ioore(colorMap, t3); t3 = colorMap[t3]; if (!(dst >= 0 && dst < t1)) return A.ioore(outData, dst); outData[dst] = t3; packed_pixels = B.JSInt_methods._shrBothPositive$1(packed_pixels, bitsPerPixel); } } else for (t1 = inData.length, t2 = outData.length, y = yStart; y < yEnd; ++y) for (x = 0; x < width; ++x, dst = dst0, src = src0) { dst0 = dst + 1; colorMap.toString; src0 = src + 1; if (!(src >= 0 && src < t1)) return A.ioore(inData, src); t3 = inData[src] >>> 8 & 255; if (!(t3 < colorMap.length)) return A.ioore(colorMap, t3); t3 = colorMap[t3]; if (!(dst >= 0 && dst < t2)) return A.ioore(outData, dst); outData[dst] = t3; } }, colorSpaceInverseTransform$4(yStart, yEnd, outData, data) { var y, t2, pred, x, t3, pred0, t4, green, t5, t6, t7, a, b, t8, t9, t10, newRed, d, d0, width = this.xsize, t1 = this.bits, mask = B.JSInt_methods._shlPositive$1(1, t1) - 1, tilesPerRow = A.VP8L__subSampleSize(width, t1), predRow = B.JSInt_methods._shrOtherPositive$1(yStart, t1) * tilesPerRow; for (t1 = outData.length, y = yStart; y < yEnd;) { t2 = new Uint8Array(3); for (pred = predRow, x = 0; x < width; ++x) { if ((x & mask) >>> 0 === 0) { t3 = this.data; pred0 = pred + 1; if (!(pred < t3.length)) return A.ioore(t3, pred); t3 = t3[pred]; t2[0] = t3 & 255; t2[1] = t3 >>> 8 & 255; t2[2] = t3 >>> 16 & 255; pred = pred0; } t3 = data + x; if (!(t3 >= 0 && t3 < t1)) return A.ioore(outData, t3); t4 = outData[t3]; green = t4 >>> 8 & 255; t5 = t2[0]; t6 = $.$get$__uint8(); t6[0] = t5; t5 = $.$get$__uint8ToInt8(); t7 = t5.length; if (0 >= t7) return A.ioore(t5, 0); a = t5[0]; t6[0] = green; if (0 >= t7) return A.ioore(t5, 0); b = t5[0]; t8 = $.$get$__int32(); t8[0] = a * b; t9 = $.$get$__int32ToUint32(); t10 = t9.length; if (0 >= t10) return A.ioore(t9, 0); newRed = (t4 >>> 16 & 255) + (t9[0] >>> 5) >>> 0 & 255; t6[0] = t2[1]; if (0 >= t7) return A.ioore(t5, 0); a = t5[0]; t6[0] = green; if (0 >= t7) return A.ioore(t5, 0); t8[0] = a * t5[0]; if (0 >= t10) return A.ioore(t9, 0); d = t9[0]; t6[0] = t2[2]; if (0 >= t7) return A.ioore(t5, 0); a = t5[0]; t6[0] = newRed; if (0 >= t7) return A.ioore(t5, 0); t8[0] = a * t5[0]; if (0 >= t10) return A.ioore(t9, 0); d0 = t9[0]; outData[t3] = (t4 & 4278255360 | newRed << 16 | ((t4 & 255) + (d >>> 5) >>> 0) + (d0 >>> 5) >>> 0 & 255) >>> 0; } data += width; ++y; if ((y & mask) >>> 0 === 0) predRow += tilesPerRow; } }, predictorInverseTransform$4(yStart, yEnd, outData, data) { var t1, t2, x, t3, mask, tilesPerRow, predModeBase, y, predModeSrc, predFunc, predModeSrc0, _this = this, width = _this.xsize; if (yStart === 0) { t1 = data - 1; t2 = outData.length; if (!(t1 >= 0 && t1 < t2)) return A.ioore(outData, t1); A.VP8LTransform__addPixelsEq(outData, data, 4278190080); for (x = 1; x < width; ++x) { t1 = data + x; t3 = t1 - 1; if (!(t3 >= 0 && t3 < t2)) return A.ioore(outData, t3); A.VP8LTransform__addPixelsEq(outData, t1, outData[t3]); } data += width; ++yStart; } t1 = _this.bits; mask = B.JSInt_methods._shlPositive$1(1, t1) - 1; tilesPerRow = A.VP8L__subSampleSize(width, t1); predModeBase = B.JSInt_methods._shrOtherPositive$1(yStart, t1) * tilesPerRow; for (t1 = outData.length, y = yStart; y < yEnd;) { t2 = data - 1; if (!(t2 >= 0 && t2 < t1)) return A.ioore(outData, t2); t2 = data - width; if (!(t2 >= 0 && t2 < t1)) return A.ioore(outData, t2); A.VP8LTransform__addPixelsEq(outData, data, outData[t2]); t2 = _this.data; predModeSrc = predModeBase + 1; if (!(predModeBase < t2.length)) return A.ioore(t2, predModeBase); predFunc = $.VP8LTransform_PREDICTORS[t2[predModeBase] >>> 8 & 15]; for (x = 1; x < width; ++x) { if ((x & mask) >>> 0 === 0) { t2 = _this.data; predModeSrc0 = predModeSrc + 1; if (!(predModeSrc < t2.length)) return A.ioore(t2, predModeSrc); predFunc = $.VP8LTransform_PREDICTORS[t2[predModeSrc] >>> 8 & 15]; predModeSrc = predModeSrc0; } t2 = data + x; t3 = t2 - 1; if (!(t3 >= 0 && t3 < t1)) return A.ioore(outData, t3); A.VP8LTransform__addPixelsEq(outData, t2, predFunc.call$3(outData, outData[t3], t2 - width)); } data += width; ++y; if ((y & mask) >>> 0 === 0) predModeBase += tilesPerRow; } }, addGreenToBlueAndRed$3(pixels, data, dataEnd) { var t1, argb, green, data0; for (t1 = pixels.length; data < dataEnd; data = data0) { if (!(data >= 0 && data < t1)) return A.ioore(pixels, data); argb = pixels[data]; green = argb >>> 8 & 255; data0 = data + 1; pixels[data] = (argb & 4278255360 | (argb & 16711935) + (green << 16 | green) & 16711935) >>> 0; } } }; A.WebPAlpha.prototype = { get$isValid() { var _this = this, t1 = _this.method; t1 = t1 > 1 || _this.filter >= 4 || _this.preProcessing > 1 || _this.rsrv !== 0; if (t1) return false; return true; }, decode$3(_, row, numRows, output) { var t1, unfilterFunc, offset, t2, t3, t4, t5, t6, _this = this, _s5_ = "_vp8l"; if (!_this.get$isValid()) return false; t1 = _this.filter; if (!(t1 < 4)) return A.ioore(B.List_HHa, t1); unfilterFunc = B.List_HHa[t1]; if (_this.method === 0) { t1 = _this.width; offset = row * t1; t2 = _this.input; B.NativeUint8List_methods.setRange$4(output, offset, numRows * t1, t2.buffer, t2.offset - t2.start + offset); } else { t1 = row + numRows; A._lateReadCheck(_this.__WebPAlpha__vp8l, _s5_)._opaque = output; t2 = _this._use8bDecode; t3 = _this.__WebPAlpha__vp8l; if (t2) { t2 = A._lateReadCheck(t3, _s5_); t3 = A._lateReadCheck(_this.__WebPAlpha__vp8l, _s5_).webp.width; t4 = A._lateReadCheck(_this.__WebPAlpha__vp8l, _s5_).webp.height; t1 = t2._decodeAlphaData$3(A._asInt(t3), A._asInt(t4), t1); } else { t2 = A._lateReadCheck(t3, _s5_); t3 = A._lateReadCheck(_this.__WebPAlpha__vp8l, _s5_)._pixels; t3.toString; t4 = A._lateReadCheck(_this.__WebPAlpha__vp8l, _s5_).webp.width; t5 = A._lateReadCheck(_this.__WebPAlpha__vp8l, _s5_).webp.height; t6 = A._lateReadCheck(_this.__WebPAlpha__vp8l, _s5_).get$extractAlphaRows(); t6 = t2._decodeImageData$5(t3, A._asInt(t4), A._asInt(t5), t1, type$.void_Function_int._as(t6)); t1 = t6; } if (!t1) return false; } if (unfilterFunc != null) { t1 = _this.width; unfilterFunc.call$6(t1, _this.height, t1, row, numRows, output); } if (_this.preProcessing === 1) if (!_this._dequantizeLevels$5(output, _this.width, _this.height, row, numRows)) return false; if (row + numRows === _this.height) _this.isAlphaDecoded = true; return true; }, _dequantizeLevels$5(data, width, height, row, num_rows) { if (width <= 0 || height <= 0 || row < 0 || num_rows < 0 || row + num_rows > height) return false; return true; } }; A.WebPFrame.prototype = { WebPFrame$2(input, size) { input.readByte$0(); this._reserved = 0; this.__WebPFrame__framePosition = input.offset - input.start; this.__WebPFrame__frameSize = size - 16; } }; A.InternalWebPFrame.prototype = {}; A.HuffmanTree.prototype = { _init$1(numLeaves) { var t1, _this = this; if (numLeaves === 0) return false; t1 = (numLeaves << 1 >>> 0) - 1; _this.maxNodes = t1; t1 = new Int32Array(t1 << 1 >>> 0); _this.__HuffmanTree_tree = t1; t1 = A._lateReadCheck(t1, "tree"); if (1 >= t1.length) return A.ioore(t1, 1); t1[1] = -1; _this.numNodes = 1; B.NativeUint8List_methods.fillRange$3(_this.lutBits, 0, 128, 255); return true; }, buildImplicit$2(codeLengths, codeLengthsSize) { var t1, numSymbols, rootSymbol, symbol, codes, t2, _this = this; type$.List_int._as(codeLengths); for (t1 = codeLengths.length, numSymbols = 0, rootSymbol = 0, symbol = 0; symbol < codeLengthsSize; ++symbol) { if (!(symbol < t1)) return A.ioore(codeLengths, symbol); if (codeLengths[symbol] > 0) { ++numSymbols; rootSymbol = symbol; } } if (!_this._init$1(numSymbols)) return false; if (numSymbols === 1) { if (rootSymbol < 0 || rootSymbol >= codeLengthsSize) return false; return _this._addSymbol$3(rootSymbol, 0, 0); } codes = new Int32Array(codeLengthsSize); if (!_this._huffmanCodeLengthsToCodes$3(codeLengths, codeLengthsSize, codes)) return false; for (symbol = 0; symbol < codeLengthsSize; ++symbol) { if (!(symbol < t1)) return A.ioore(codeLengths, symbol); t2 = codeLengths[symbol]; if (t2 > 0) if (!_this._addSymbol$3(symbol, codes[symbol], t2)) return false; } return _this.numNodes === _this.maxNodes; }, buildExplicit$5(codeLengths, codes, symbols, maxSymbol, numSymbols) { var i, t2, _this = this, t1 = type$.List_int; t1._as(codeLengths); t1._as(codes); t1._as(symbols); if (!_this._init$1(numSymbols)) return false; for (i = 0; i < numSymbols; ++i) { if (!(i < 2)) return A.ioore(codes, i); t1 = codes[i]; if (t1 !== -1) { t2 = symbols[i]; if (t2 >= maxSymbol) return _this.numNodes === _this.maxNodes; if (!_this._addSymbol$3(t2, t1, codeLengths[i])) return _this.numNodes === _this.maxNodes; } } return _this.numNodes === _this.maxNodes; }, readSymbol$1(br) { var node, t1, t2, _this = this, bits = br.prefetchBits$0(), newBitPos = br.bitPos, lut_ix = bits & 127, lut_bits = _this.lutBits[lut_ix]; if (lut_bits <= 7) { br.bitPos = newBitPos + lut_bits; return _this.lutSymbol[lut_ix]; } node = _this.lutJump[lut_ix]; newBitPos += 7; bits = bits >>> 7; do { t1 = A._lateReadCheck(_this.__HuffmanTree_tree, "tree"); t2 = (node << 1 >>> 0) + 1; if (!(t2 < t1.length)) return A.ioore(t1, t2); node = node + t1[t2] + (bits & 1); bits = bits >>> 1; ++newBitPos; } while (_this._nodeIsNotLeaf$1(node)); br.bitPos = newBitPos; t1 = A._lateReadCheck(_this.__HuffmanTree_tree, "tree"); t2 = node << 1 >>> 0; if (!(t2 < t1.length)) return A.ioore(t1, t2); return t1[t2]; }, _addSymbol$3(symbol, code, codeLength) { var baseCode, t1, t2, t3, i, idx, step, node, codeLength0, t4, t5, _this = this, _s4_ = "tree"; if (codeLength <= 7) { baseCode = _this._reverseBitsShort$2(code, codeLength); for (t1 = B.JSInt_methods.$shl(1, 7 - codeLength), t2 = _this.lutSymbol, t3 = _this.lutBits, i = 0; i < t1; ++i) { idx = (baseCode | B.JSInt_methods.$shl(i, codeLength)) >>> 0; if (!(idx < 128)) return A.ioore(t2, idx); t2[idx] = symbol; t3[idx] = codeLength; } } else baseCode = _this._reverseBitsShort$2(B.JSInt_methods.$shr(code, codeLength - 7), 7); for (t1 = _this.lutJump, step = 7, node = 0; codeLength0 = codeLength - 1, codeLength > 0; codeLength = codeLength0) { if (node >= _this.maxNodes) return false; t2 = A._lateReadCheck(_this.__HuffmanTree_tree, _s4_); t3 = (node << 1 >>> 0) + 1; if (!(t3 < t2.length)) return A.ioore(t2, t3); if (t2[t3] < 0) { t2 = _this.numNodes; if (t2 === _this.maxNodes) return false; t4 = A._lateReadCheck(_this.__HuffmanTree_tree, _s4_); if (!(t3 < t4.length)) return A.ioore(t4, t3); t4[t3] = t2 - node; _this.numNodes += 2; t4 = A._lateReadCheck(_this.__HuffmanTree_tree, _s4_); t5 = (t2 << 1 >>> 0) + 1; if (!(t5 < t4.length)) return A.ioore(t4, t5); t4[t5] = -1; t5 = A._lateReadCheck(_this.__HuffmanTree_tree, _s4_); t2 = (t2 + 1 << 1 >>> 0) + 1; if (!(t2 < t5.length)) return A.ioore(t5, t2); t5[t2] = -1; } else { t2 = A._lateReadCheck(_this.__HuffmanTree_tree, _s4_); if (!(t3 < t2.length)) return A.ioore(t2, t3); if (t2[t3] === 0) return false; } t2 = A._lateReadCheck(_this.__HuffmanTree_tree, _s4_); if (!(t3 < t2.length)) return A.ioore(t2, t3); node += t2[t3] + (B.JSInt_methods.$shr(code, codeLength0) & 1); --step; if (step === 0) { if (!(baseCode < 128)) return A.ioore(t1, baseCode); t1[baseCode] = node; } } if (_this._nodeIsEmpty$1(node)) _this._nodeSetChildren$2(node, 0); else if (_this._nodeIsNotLeaf$1(node)) return false; t1 = A._lateReadCheck(_this.__HuffmanTree_tree, _s4_); t2 = node << 1 >>> 0; if (!(t2 < t1.length)) return A.ioore(t1, t2); t1[t2] = symbol; return true; }, _reverseBitsShort$2(bits, numBits) { var t1 = B.List_cGl[bits & 15], t2 = B.JSInt_methods._shrOtherPositive$1(bits, 4); if (!(t2 < 16)) return A.ioore(B.List_cGl, t2); return B.JSInt_methods._shrReceiverPositive$1((t1 << 4 | B.List_cGl[t2]) >>> 0, 8 - numBits); }, _nodeSetChildren$2(node, children) { var t1 = A._lateReadCheck(this.__HuffmanTree_tree, "tree"), t2 = (node << 1 >>> 0) + 1; if (!(t2 < t1.length)) return A.ioore(t1, t2); t1[t2] = children; }, _nodeIsNotLeaf$1(node) { var t1 = A._lateReadCheck(this.__HuffmanTree_tree, "tree"), t2 = (node << 1 >>> 0) + 1; if (!(t2 < t1.length)) return A.ioore(t1, t2); return t1[t2] !== 0; }, _nodeIsEmpty$1(node) { var t1 = A._lateReadCheck(this.__HuffmanTree_tree, "tree"), t2 = (node << 1 >>> 0) + 1; if (!(t2 < t1.length)) return A.ioore(t1, t2); return t1[t2] < 0; }, _huffmanCodeLengthsToCodes$3(codeLengths, codeLengthsSize, huffCodes) { var codeLengthHist, nextCodes, symbol, maxCodeLength, maxCodeLength0, t2, t3, codeLen, currCode, t4, t1 = type$.List_int; t1._as(codeLengths); t1._as(huffCodes); codeLengthHist = new Int32Array(16); nextCodes = new Int32Array(16); for (t1 = codeLengths.length, symbol = 0, maxCodeLength = 0; symbol < codeLengthsSize; ++symbol) { if (!(symbol < t1)) return A.ioore(codeLengths, symbol); maxCodeLength0 = codeLengths[symbol]; if (maxCodeLength0 > maxCodeLength) maxCodeLength = maxCodeLength0; } if (maxCodeLength > 15) return false; for (symbol = 0; symbol < codeLengthsSize; ++symbol) { if (!(symbol < t1)) return A.ioore(codeLengths, symbol); t2 = codeLengths[symbol]; if (!(t2 >= 0 && t2 < 16)) return A.ioore(codeLengthHist, t2); t3 = codeLengthHist[t2]; if (!(t2 < 16)) return A.ioore(codeLengthHist, t2); codeLengthHist[t2] = t3 + 1; } if (0 >= 16) return A.ioore(codeLengthHist, 0); codeLengthHist[0] = 0; if (0 >= 16) return A.ioore(nextCodes, 0); nextCodes[0] = -1; for (codeLen = 1, currCode = 0; codeLen <= maxCodeLength; ++codeLen) { currCode = currCode + codeLengthHist[codeLen - 1] << 1 >>> 0; if (!(codeLen < 16)) return A.ioore(nextCodes, codeLen); nextCodes[codeLen] = currCode; } for (t2 = huffCodes.length, symbol = 0; symbol < codeLengthsSize; ++symbol) { if (!(symbol < t1)) return A.ioore(codeLengths, symbol); t3 = codeLengths[symbol]; if (t3 > 0) { if (!(t3 < 16)) return A.ioore(nextCodes, t3); t4 = nextCodes[t3]; if (!(t3 < 16)) return A.ioore(nextCodes, t3); nextCodes[t3] = t4 + 1; if (!(symbol < t2)) return A.ioore(huffCodes, symbol); huffCodes[symbol] = t4; } else { if (!(symbol < t2)) return A.ioore(huffCodes, symbol); huffCodes[symbol] = -1; } } return true; } }; A.HTreeGroup.prototype = { $index(_, index) { return B.JSArray_methods.$index(this.htrees, A._asInt(index)); } }; A.WebPInfo.prototype = {}; A.InternalWebPInfo.prototype = {}; A.WebPDecoder.prototype = { isValidFile$1(bytes) { var t1 = A.InputBuffer$(type$.List_int._as(bytes), false, null, 0); this._webp_decoder$_input = t1; if (!this._getHeader$1(t1)) return false; return true; }, startDecode$1(bytes) { var t2, _this = this, _null = null, t1 = A.InputBuffer$(type$.List_int._as(bytes), false, _null, 0); _this._webp_decoder$_input = t1; if (!_this._getHeader$1(t1)) return _null; t1 = new A.InternalWebPInfo(A._setArrayType([], type$.JSArray_WebPFrame)); _this._info = t1; t2 = _this._webp_decoder$_input; t2.toString; if (!_this._webp_decoder$_getInfo$2(t2, t1)) return _null; t1 = _this._info; switch (t1.format) { case 3: t1._numFrames = t1.frames.length; return t1; case 2: t2 = _this._webp_decoder$_input; t2.toString; t2.offset = t1._vp8Position; if (!A.VP8L$(t2, t1).decodeHeader$0()) return _null; t1 = _this._info; t1._numFrames = t1.frames.length; return t1; case 1: t2 = _this._webp_decoder$_input; t2.toString; t2.offset = t1._vp8Position; if (!A.VP8$(t2, t1).decodeHeader$0()) return _null; t1 = _this._info; t1._numFrames = t1.frames.length; return t1; } return _null; }, decodeFrame$1(frame) { var t2, t3, f, data, _this = this, t1 = _this._webp_decoder$_input; if (t1 == null || _this._info == null) return null; t2 = _this._info; if (t2.hasAnimation) { t2 = t2.frames; t3 = t2.length; if (frame >= t3 || false) return null; if (!(frame < t3)) return A.ioore(t2, frame); f = t2[frame]; t1.toString; return _this._decodeFrame$2$frame(t1.subset$2$position(A._lateReadCheck(f.__WebPFrame__frameSize, "_frameSize"), A._lateReadCheck(f.__WebPFrame__framePosition, "_framePosition")), frame); } t3 = t2.format; if (t3 === 2) { t1.toString; data = t1.subset$2$position(t2._vp8Size, t2._vp8Position); t1 = _this._info; t1.toString; return A.VP8L$(data, t1).decode$0(0); } else if (t3 === 1) { t1.toString; data = t1.subset$2$position(t2._vp8Size, t2._vp8Position); t1 = _this._info; t1.toString; return A.VP8$(data, t1).decode$0(0); } return null; }, decodeImage$1(bytes) { var t1; this.startDecode$1(type$.List_int._as(bytes)); t1 = this._info; t1._frame = 0; t1._numFrames = 1; return this.decodeFrame$1(0); }, _decodeFrame$2$frame(input, frame) { var t2, f, data, _null = null, t1 = A._setArrayType([], type$.JSArray_WebPFrame), webp = new A.InternalWebPInfo(t1); if (!this._webp_decoder$_getInfo$2(input, webp)) return _null; if (webp.format === 0) return _null; t2 = this._info; webp._frame = t2._frame; webp._numFrames = t2._numFrames; if (webp.hasAnimation) { t2 = t1.length; if (frame >= t2 || false) return _null; if (!(frame < t2)) return A.ioore(t1, frame); f = t1[frame]; return this._decodeFrame$2$frame(input.subset$2$position(A._lateReadCheck(f.__WebPFrame__frameSize, "_frameSize"), A._lateReadCheck(f.__WebPFrame__framePosition, "_framePosition")), frame); } else { data = input.subset$2$position(webp._vp8Size, webp._vp8Position); t1 = webp.format; if (t1 === 2) return A.VP8L$(data, webp).decode$0(0); else if (t1 === 1) return A.VP8$(data, webp).decode$0(0); } return _null; }, _getHeader$1(input) { if (input.readString$1(4) !== "RIFF") return false; input.readUint32$0(); if (input.readString$1(4) !== "WEBP") return false; return true; }, _webp_decoder$_getInfo$2(input, webp) { var tag, size, diskSize, t3, p, t4, t5, t6, c, bytes, remainder, t1 = input.start, t2 = input.end, found = false; while (true) { if (!(input.offset < t2 && !found)) break; tag = input.readString$1(4); size = input.readUint32$0(); diskSize = size + 1 >>> 1 << 1 >>> 0; t3 = input.offset; p = t3 - t1; switch (tag) { case "VP8X": if (!this._getVp8xInfo$2(input, webp)) return false; break; case "VP8 ": webp._vp8Position = p; webp._vp8Size = size; webp.format = 1; found = true; break; case "VP8L": webp._vp8Position = p; webp._vp8Size = size; webp.format = 2; found = true; break; case "ALPH": t4 = input.buffer; t5 = input.bigEndian; t6 = t4.length; t4 = new A.InputBuffer(t4, 0, t6, 0, t5); webp._webp_info$_alphaData = t4; t4.offset = t3; input.offset += diskSize; break; case "ANIM": webp.format = 3; c = input.readUint32$0(); input.readUint16$0(); B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(c & 255, 0, 255)); B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(c >>> 24 & 255, 0, 255)); B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(c >>> 16 & 255, 0, 255)); B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(c >>> 8 & 255, 0, 255)); break; case "ANMF": if (!this._getAnimFrameInfo$3(input, webp, size)) return false; break; case "ICCP": webp.toString; bytes = input.subset$1(size); input.offset = input.offset + (bytes.end - bytes.offset); bytes.toUint8List$0(); break; case "EXIF": webp.toString; input.readString$1(size); break; case "XMP ": webp.toString; input.readString$1(size); break; default: A.printString("UNKNOWN WEBP TAG: " + tag); input.offset += diskSize; break; } t3 = input.offset; remainder = diskSize - (t3 - t1 - p); if (remainder > 0) input.offset = t3 + remainder; } if (!webp.hasAlpha) webp.hasAlpha = webp._webp_info$_alphaData != null; return webp.format !== 0; }, _getVp8xInfo$2(input, webp) { var t1, t2, t3, t4, b = input.readByte$0(); if ((b & 192) !== 0) return false; t1 = B.JSInt_methods._shrOtherPositive$1(b, 4); t2 = B.JSInt_methods._shrOtherPositive$1(b, 1); if ((b & 1) !== 0) return false; if (input.readUint24$0() !== 0) return false; t3 = input.readUint24$0(); t4 = input.readUint24$0(); webp.width = t3 + 1; webp.height = t4 + 1; webp.hasAnimation = (t2 & 1) !== 0; webp.hasAlpha = (t1 & 1) !== 0; return true; }, _getAnimFrameInfo$3(input, webp, size) { var frame; input.readUint24$0(); input.readUint24$0(); input.readUint24$0(); input.readUint24$0(); input.readUint24$0(); frame = new A.InternalWebPFrame(); frame.WebPFrame$2(input, size); if (frame._reserved !== 0) return false; B.JSArray_methods.add$1(webp.frames, frame); return true; } }; A.HdrImage.prototype = { HdrImage$fromImage$3$bitsPerSample$type(other, bitsPerSample, type) { var rgb, t3, y, si, x, t4, si0, _this = this, t1 = other.width, t2 = other.height; _this.addSlice$1(A.HdrSlice$("R", t1, t2, type, bitsPerSample)); _this.addSlice$1(A.HdrSlice$("G", t1, t2, type, bitsPerSample)); _this.addSlice$1(A.HdrSlice$("B", t1, t2, type, bitsPerSample)); if (other.channels === B.Channels_1) _this.addSlice$1(A.HdrSlice$("A", t1, t2, type, bitsPerSample)); rgb = other.getBytes$0(); for (t3 = rgb.length, y = 0, si = 0; y < t2; ++y) for (x = 0; x < t1; ++x) { t4 = _this.red; t4.toString; si0 = si + 1; if (!(si >= 0 && si < t3)) return A.ioore(rgb, si); t4.setFloat$3(x, y, rgb[si] / 255); t4 = _this.green; t4.toString; si = si0 + 1; if (!(si0 >= 0 && si0 < t3)) return A.ioore(rgb, si0); t4.setFloat$3(x, y, rgb[si0] / 255); t4 = _this.blue; t4.toString; si0 = si + 1; if (!(si >= 0 && si < t3)) return A.ioore(rgb, si); t4.setFloat$3(x, y, rgb[si] / 255); t4 = _this.alpha; if (t4 != null) { si = si0 + 1; if (!(si0 >= 0 && si0 < t3)) return A.ioore(rgb, si0); t4.setFloat$3(x, y, rgb[si0] / 255); } else si = si0; } }, get$width(_) { var t1 = this.slices; if (t1._length === 0) t1 = 0; else { t1 = t1.get$values(t1); t1 = t1._f.call$1(J.get$first$ax(t1.__internal$_iterable)).width; } return t1; }, get$height(_) { var t1 = this.slices; if (t1._length === 0) t1 = 0; else { t1 = t1.get$values(t1); t1 = t1._f.call$1(J.get$first$ax(t1.__internal$_iterable)).height; } return t1; }, setRed$3(x, y, c) { var t1 = this.red; if (t1 != null) if (t1.type === 3) t1.setFloat$3(x, y, c); else t1.setInt$3(x, y, A._asInt(c)); }, setGreen$3(x, y, c) { var t1 = this.green; if (t1 != null) if (this.red.type === 3) t1.setFloat$3(x, y, c); else t1.setInt$3(x, y, A._asInt(c)); }, setBlue$3(x, y, c) { var t1; if (this.green != null) { t1 = this.blue; if (t1.type === 3) t1.setFloat$3(x, y, c); else t1.setInt$3(x, y, A._asInt(c)); } }, setAlpha$3(x, y, c) { var t1 = this.alpha; if (t1 != null) if (t1.type === 3) t1.setFloat$3(x, y, c); else t1.setInt$3(x, y, A._asInt(c)); }, $index(_, ch) { return this.slices.$index(0, ch); }, addSlice$1(slice) { var _this = this, ch = slice.name; _this.slices.$indexSet(0, ch, slice); switch (ch) { case "R": _this.red = slice; break; case "G": _this.green = slice; break; case "B": _this.blue = slice; break; case "A": _this.alpha = slice; break; case "Z": break; } } }; A.HdrSlice.prototype = { getFloat$2(x, y) { var t3, v, s, _this = this, pi = y * _this.width + x, t1 = _this.type, t2 = t1 === 1; if (t2 || t1 === 0) { t1 = _this.data; if (!(pi >= 0 && pi < t1.length)) return A.ioore(t1, pi); t1 = A._asInt(t1[pi]); t3 = _this.bitsPerSample; if (t3 === 8) v = 255; else v = t3 === 16 ? 65535 : 4294967295; return t1 / (t2 ? v - 1 : v); } t1 = t1 === 3 && _this.bitsPerSample === 16; t2 = _this.data; t3 = t2.length; if (t1) { if (!(pi >= 0 && pi < t3)) return A.ioore(t2, pi); t1 = A._asInt(t2[pi]); if ($.Half__toFloatFloat32 == null) A.Half__initialize(); t2 = $.Half__toFloatFloat32; if (!(t1 >= 0 && t1 < t2.length)) return A.ioore(t2, t1); s = t2[t1]; } else { if (!(pi >= 0 && pi < t3)) return A.ioore(t2, pi); s = t2[pi]; } return s; }, setFloat$3(x, y, v) { var pi, t1, t2, _this = this; if (_this.type !== 3) return; pi = y * _this.width + x; t1 = _this.data; t2 = J.getInterceptor$ax(t1); if (_this.bitsPerSample === 16) t2.$indexSet(t1, pi, A.Half_DoubleToHalf(v)); else t2.$indexSet(t1, pi, v); }, setInt$3(x, y, v) { J.$indexSet$ax(this.data, y * this.width + x, v); } }; A.hdrToImage__knee.prototype = { call$2(x, f) { return Math.log(x * f + 1) / f; }, $signature: 16 }; A.hdrToImage__gamma.prototype = { call$2(h, m) { var t1, x = Math.max(0, h * m); if (x > 1) { t1 = this._knee.call$2(x - 1, 0.184874); if (typeof t1 !== "number") return A.iae(t1); x = 1 + t1; } return Math.pow(x, 0.4545) * 84.66; }, $signature: 16 }; A.ICCPCompression.prototype = { toString$0(_) { return "ICCPCompression." + this._core$_name; } }; A.ICCProfileData.prototype = { compressed$0() { var t1, _this = this; if (_this.compression === B.ICCPCompression_1) return _this.data; t1 = type$.Uint8List._as(B.C_ZLibEncoder.encode$1(_this.data)); _this.data = t1; _this.compression = B.ICCPCompression_1; return t1; } }; A.Format.prototype = { toString$0(_) { return "Format." + this._core$_name; } }; A.Channels.prototype = { toString$0(_) { return "Channels." + this._core$_name; } }; A.BlendMode.prototype = { toString$0(_) { return "BlendMode." + this._core$_name; } }; A.DisposeMode.prototype = { toString$0(_) { return "DisposeMode." + this._core$_name; } }; A.Image.prototype = { getBytes$1$format(format) { var len, bytes, i, t2, t3, t4, t5, j, _this = this, t1 = _this.data, rgba = A.NativeUint8List_NativeUint8List$view(t1.buffer, 0, null); switch (format.index) { case 2: return rgba; case 3: len = _this.width * _this.height * 4; bytes = new Uint8Array(len); for (t1 = rgba.length, i = 0; i < len; i += 4) { t2 = i + 2; if (!(t2 < t1)) return A.ioore(rgba, t2); t3 = rgba[t2]; if (!(i < len)) return A.ioore(bytes, i); bytes[i] = t3; t3 = i + 1; if (!(t3 < t1)) return A.ioore(rgba, t3); t4 = rgba[t3]; if (!(t3 < len)) return A.ioore(bytes, t3); bytes[t3] = t4; if (!(i < t1)) return A.ioore(rgba, i); t4 = rgba[i]; if (!(t2 < len)) return A.ioore(bytes, t2); bytes[t2] = t4; t4 = i + 3; if (!(t4 < t1)) return A.ioore(rgba, t4); t2 = rgba[t4]; if (!(t4 < len)) return A.ioore(bytes, t4); bytes[t4] = t2; } return bytes; case 1: len = _this.width * _this.height * 4; bytes = new Uint8Array(len); for (t1 = rgba.length, i = 0; i < len; i += 4) { t2 = i + 3; if (!(t2 < t1)) return A.ioore(rgba, t2); t3 = rgba[t2]; if (!(i < len)) return A.ioore(bytes, i); bytes[i] = t3; t3 = i + 1; t4 = i + 2; if (!(t4 < t1)) return A.ioore(rgba, t4); t5 = rgba[t4]; if (!(t3 < len)) return A.ioore(bytes, t3); bytes[t3] = t5; if (!(t3 < t1)) return A.ioore(rgba, t3); t3 = rgba[t3]; if (!(t4 < len)) return A.ioore(bytes, t4); bytes[t4] = t3; if (!(i < t1)) return A.ioore(rgba, i); t3 = rgba[i]; if (!(t2 < len)) return A.ioore(bytes, t2); bytes[t2] = t3; } return bytes; case 0: len = _this.width * _this.height * 4; bytes = new Uint8Array(len); for (t1 = rgba.length, i = 0; i < len; i += 4) { t2 = i + 3; if (!(t2 < t1)) return A.ioore(rgba, t2); t3 = rgba[t2]; if (!(i < len)) return A.ioore(bytes, i); bytes[i] = t3; t3 = i + 1; if (!(i < t1)) return A.ioore(rgba, i); t4 = rgba[i]; if (!(t3 < len)) return A.ioore(bytes, t3); bytes[t3] = t4; t4 = i + 2; if (!(t3 < t1)) return A.ioore(rgba, t3); t3 = rgba[t3]; if (!(t4 < len)) return A.ioore(bytes, t4); bytes[t4] = t3; if (!(t4 < t1)) return A.ioore(rgba, t4); t4 = rgba[t4]; if (!(t2 < len)) return A.ioore(bytes, t2); bytes[t2] = t4; } return bytes; case 4: len = _this.width * _this.height * 3; bytes = new Uint8Array(len); for (t1 = rgba.length, i = 0, j = 0; j < len; i += 4, j += 3) { if (!(i < t1)) return A.ioore(rgba, i); t2 = rgba[i]; if (!(j < len)) return A.ioore(bytes, j); bytes[j] = t2; t2 = j + 1; t3 = i + 1; if (!(t3 < t1)) return A.ioore(rgba, t3); t3 = rgba[t3]; if (!(t2 < len)) return A.ioore(bytes, t2); bytes[t2] = t3; t3 = j + 2; t2 = i + 2; if (!(t2 < t1)) return A.ioore(rgba, t2); t2 = rgba[t2]; if (!(t3 < len)) return A.ioore(bytes, t3); bytes[t3] = t2; } return bytes; case 5: len = _this.width * _this.height * 3; bytes = new Uint8Array(len); for (t1 = rgba.length, i = 0, j = 0; j < len; i += 4, j += 3) { t2 = i + 2; if (!(t2 < t1)) return A.ioore(rgba, t2); t2 = rgba[t2]; if (!(j < len)) return A.ioore(bytes, j); bytes[j] = t2; t2 = j + 1; t3 = i + 1; if (!(t3 < t1)) return A.ioore(rgba, t3); t3 = rgba[t3]; if (!(t2 < len)) return A.ioore(bytes, t2); bytes[t2] = t3; t3 = j + 2; if (!(i < t1)) return A.ioore(rgba, i); t2 = rgba[i]; if (!(t3 < len)) return A.ioore(bytes, t3); bytes[t3] = t2; } return bytes; case 6: t2 = _this.width * _this.height; bytes = new Uint8Array(t2); for (len = t1.length, i = 0; i < len; ++i) { t3 = t1[i]; t3 = B.JSNumber_methods.round$0(0.299 * (t3 & 255) + 0.587 * (t3 >>> 8 & 255) + 0.114 * (t3 >>> 16 & 255)); if (!(i < t2)) return A.ioore(bytes, i); bytes[i] = t3; } return bytes; } }, getBytes$0() { return this.getBytes$1$format(B.Format_2); }, get$length(_) { return this.data.length; }, $index(_, index) { var t1; A._asInt(index); t1 = this.data; if (!(index >= 0 && index < t1.length)) return A.ioore(t1, index); return t1[index]; }, boundsSafe$2(x, y) { return x >= 0 && x < this.width && y >= 0 && y < this.height; }, getPixelSafe$2(x, y) { var t1, t2; if (this.boundsSafe$2(x, y)) { t1 = this.data; t2 = y * this.width + x; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); t2 = t1[t2]; t1 = t2; } else t1 = 0; return t1; }, getPixelInterpolate$3(fx, fy, interpolation) { if (interpolation === B.Interpolation_2) return this.getPixelCubic$2(fx, fy); else if (interpolation === B.Interpolation_1) return this.getPixelLinear$2(fx, fy); return this.getPixelSafe$2(B.JSNumber_methods.toInt$0(fx), B.JSNumber_methods.toInt$0(fy)); }, getPixelLinear$2(fx, fy) { var y, ny, Icc, t2, Icn, t3, Inc, Inn, _this = this, t1 = B.JSNumber_methods.toInt$0(fx), x = t1 - (fx >= 0 ? 0 : 1), nx = x + 1; t1 = B.JSNumber_methods.toInt$0(fy); y = t1 - (fy >= 0 ? 0 : 1); ny = y + 1; t1 = new A.Image_getPixelLinear__linear(fx - x, fy - y); Icc = _this.getPixelSafe$2(x, y); t2 = ny >= _this.height; Icn = t2 ? Icc : _this.getPixelSafe$2(x, ny); t3 = nx >= _this.width; Inc = t3 ? Icc : _this.getPixelSafe$2(nx, y); Inn = t3 || t2 ? Icc : _this.getPixelSafe$2(nx, ny); return A.getColor(t1.call$4(Icc & 255, Inc & 255, Icn & 255, Inn & 255), t1.call$4(Icc >>> 8 & 255, Inc >>> 8 & 255, Icn >>> 8 & 255, Inn >>> 8 & 255), t1.call$4(Icc >>> 16 & 255, Inc >>> 16 & 255, Icn >>> 16 & 255, Inn >>> 16 & 255), t1.call$4(Icc >>> 24 & 255, Inc >>> 24 & 255, Icn >>> 24 & 255, Inn >>> 24 & 255)); }, getPixelCubic$2(fx, fy) { var y, py, ny, ay, dx, dy, Icc, t2, t3, Ipp, Icp, t4, Inp, t5, t6, t7, Iap, Ip0, Ip1, Ip2, Ip3, Ipc, Inc, Iac, Ic0, Ic1, Ic2, Ic3, Ipn, Icn, Inn, Ian, In0, In1, In2, In3, Ipa, Ica, Ina, Iaa, Ia0, Ia1, Ia2, Ia3, c0, c1, c2, c3, _this = this, t1 = B.JSNumber_methods.toInt$0(fx), x = t1 - (fx >= 0 ? 0 : 1), px = x - 1, nx = x + 1, ax = x + 2; t1 = B.JSNumber_methods.toInt$0(fy); y = t1 - (fy >= 0 ? 0 : 1); py = y - 1; ny = y + 1; ay = y + 2; dx = fx - x; dy = fy - y; t1 = new A.Image_getPixelCubic__cubic(); Icc = _this.getPixelSafe$2(x, y); t2 = px < 0; t3 = !t2; Ipp = !t3 || py < 0 ? Icc : _this.getPixelSafe$2(px, py); Icp = t2 ? Icc : _this.getPixelSafe$2(x, py); t4 = py < 0; Inp = t4 || nx >= _this.width ? Icc : _this.getPixelSafe$2(nx, py); t5 = _this.width; t6 = ax >= t5; t7 = !t6; Iap = !t7 || t4 ? Icc : _this.getPixelSafe$2(ax, py); Ip0 = t1.call$5(dx, Ipp & 255, Icp & 255, Inp & 255, Iap & 255); Ip1 = t1.call$5(dx, Ipp >>> 8 & 255, Icp >>> 8 & 255, Inp >>> 8 & 255, Iap >>> 8 & 255); Ip2 = t1.call$5(dx, Ipp >>> 16 & 255, Icp >>> 16 & 255, Inp >>> 16 & 255, Iap >>> 16 & 255); Ip3 = t1.call$5(dx, Ipp >>> 24 & 255, Icp >>> 24 & 255, Inp >>> 24 & 255, Iap >>> 24 & 255); Ipc = t2 ? Icc : _this.getPixelSafe$2(px, y); t2 = nx >= t5; Inc = t2 ? Icc : _this.getPixelSafe$2(nx, y); Iac = t6 ? Icc : _this.getPixelSafe$2(ax, y); Ic0 = t1.call$5(dx, Ipc & 255, Icc & 255, Inc & 255, Iac & 255); Ic1 = t1.call$5(dx, Ipc >>> 8 & 255, Icc >>> 8 & 255, Inc >>> 8 & 255, Iac >>> 8 & 255); Ic2 = t1.call$5(dx, Ipc >>> 16 & 255, Icc >>> 16 & 255, Inc >>> 16 & 255, Iac >>> 16 & 255); Ic3 = t1.call$5(dx, Ipc >>> 24 & 255, Icc >>> 24 & 255, Inc >>> 24 & 255, Iac >>> 24 & 255); Ipn = !t3 || ny >= _this.height ? Icc : _this.getPixelSafe$2(px, ny); t4 = _this.height; t5 = ny >= t4; Icn = t5 ? Icc : _this.getPixelSafe$2(x, ny); t2 = !t2; Inn = !t2 || t5 ? Icc : _this.getPixelSafe$2(nx, ny); Ian = !t7 || t5 ? Icc : _this.getPixelSafe$2(ax, ny); In0 = t1.call$5(dx, Ipn & 255, Icn & 255, Inn & 255, Ian & 255); In1 = t1.call$5(dx, Ipn >>> 8 & 255, Icn >>> 8 & 255, Inn >>> 8 & 255, Ian >>> 8 & 255); In2 = t1.call$5(dx, Ipn >>> 16 & 255, Icn >>> 16 & 255, Inn >>> 16 & 255, Ian >>> 16 & 255); In3 = t1.call$5(dx, Ipn >>> 24 & 255, Icn >>> 24 & 255, Inn >>> 24 & 255, Ian >>> 24 & 255); Ipa = !t3 || ay >= t4 ? Icc : _this.getPixelSafe$2(px, ay); t3 = ay >= t4; Ica = t3 ? Icc : _this.getPixelSafe$2(x, ay); Ina = !t2 || t3 ? Icc : _this.getPixelSafe$2(nx, ay); Iaa = !t7 || t3 ? Icc : _this.getPixelSafe$2(ax, ay); Ia0 = t1.call$5(dx, Ipa & 255, Ica & 255, Ina & 255, Iaa & 255); Ia1 = t1.call$5(dx, Ipa >>> 8 & 255, Ica >>> 8 & 255, Ina >>> 8 & 255, Iaa >>> 8 & 255); Ia2 = t1.call$5(dx, Ipa >>> 16 & 255, Ica >>> 16 & 255, Ina >>> 16 & 255, Iaa >>> 16 & 255); Ia3 = t1.call$5(dx, Ipa >>> 24 & 255, Ica >>> 24 & 255, Ina >>> 24 & 255, Iaa >>> 24 & 255); c0 = t1.call$5(dy, Ip0, Ic0, In0, Ia0); c1 = t1.call$5(dy, Ip1, Ic1, In1, Ia1); c2 = t1.call$5(dy, Ip2, Ic2, In2, Ia2); c3 = t1.call$5(dy, Ip3, Ic3, In3, Ia3); return A.getColor(B.JSNumber_methods.toInt$0(c0), B.JSNumber_methods.toInt$0(c1), B.JSNumber_methods.toInt$0(c2), B.JSNumber_methods.toInt$0(c3)); }, setPixel$3(x, y, color) { var t1 = this.data, t2 = y * this.width + x; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); t1[t2] = color; }, addTextData$1(data) { var t1, t2, t3, t4; type$.Map_String_String._as(data); if (this.textData == null) { t1 = type$.String; this.set$textData(A.LinkedHashMap_LinkedHashMap$_empty(t1, t1)); } for (t1 = A.LinkedHashMapKeyIterator$(data, data._modifications, A._instanceType(data)._precomputed1); t1.moveNext$0();) { t2 = t1.__js_helper$_current; t3 = this.textData; t3.toString; t4 = data.$index(0, t2); t4.toString; t3.$indexSet(0, t2, t4); } }, set$textData(textData) { this.textData = type$.nullable_Map_String_String._as(textData); } }; A.Image_getPixelLinear__linear.prototype = { call$4(Icc, Inc, Icn, Inn) { var t1 = this.dy; return B.JSNumber_methods.toInt$0(Icc + this.dx * (Inc - Icc + t1 * (Icc + Inn - Icn - Inc)) + t1 * (Icn - Icc)); }, $signature: 35 }; A.Image_getPixelCubic__cubic.prototype = { call$5(dx, Ipp, Icp, Inp, Iap) { var t1 = -Ipp, t2 = dx * dx; return Icp + 0.5 * (dx * (t1 + Inp) + t2 * (2 * Ipp - 5 * Icp + 4 * Inp - Iap) + t2 * dx * (t1 + 3 * Icp - 3 * Inp + Iap)); }, $signature: 45 }; A.ImageException.prototype = { toString$0(_) { return "ImageException: " + this.message; } }; A.DitherKernel.prototype = { toString$0(_) { return "DitherKernel." + this._core$_name; } }; A.InputBuffer.prototype = { get$length(_) { return this.end - this.offset; }, $index(_, index) { var t1, t2; A._asInt(index); t1 = this.buffer; t2 = this.offset + index; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); return t1[t2]; }, $indexSet(_, index, value) { J.$indexSet$ax(this.buffer, this.offset + index, value); return value; }, memcpy$4(start, $length, other, offset) { var t1 = this.buffer, t2 = J.getInterceptor$ax(t1), t3 = this.offset + start; if (other instanceof A.InputBuffer) t2.setRange$4(t1, t3, t3 + $length, other.buffer, other.offset + offset); else t2.setRange$4(t1, t3, t3 + $length, type$.List_int._as(other), offset); }, memcpy$3(start, $length, other) { return this.memcpy$4(start, $length, other, 0); }, memset$3(start, $length, value) { var t1 = this.buffer, t2 = this.offset + start; J.fillRange$3$ax(t1, t2, t2 + $length, value); }, subset$3$offset$position(count, offset, position) { var _this = this, pos = position != null ? _this.start + position : _this.offset; return A.InputBuffer$(_this.buffer, _this.bigEndian, count, pos + offset); }, subset$1(count) { return this.subset$3$offset$position(count, 0, null); }, subset$2$position(count, position) { return this.subset$3$offset$position(count, 0, position); }, subset$2$offset(count, offset) { return this.subset$3$offset$position(count, offset, null); }, readByte$0() { var t1 = this.buffer, t2 = this.offset++; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); return t1[t2]; }, readBytes$1(count) { var bytes = this.subset$1(count); this.offset = this.offset + (bytes.end - bytes.offset); return bytes; }, readString$1(len) { var codes, t1, t2, t3, _this = this; if (len == null) { codes = A._setArrayType([], type$.JSArray_int); for (t1 = _this.end; t2 = _this.offset, t2 < t1;) { t3 = _this.buffer; _this.offset = t2 + 1; if (!(t2 >= 0 && t2 < t3.length)) return A.ioore(t3, t2); t2 = t3[t2]; if (t2 === 0) return A.String_String$fromCharCodes(codes, 0, null); B.JSArray_methods.add$1(codes, t2); } throw A.wrapException(A.ImageException$(string$.EOF_re)); } return A.String_String$fromCharCodes(_this.readBytes$1(len).toUint8List$0(), 0, null); }, readString$0() { return this.readString$1(null); }, readStringUtf8$0() { var t1, t2, t3, _this = this, codes = A._setArrayType([], type$.JSArray_int); for (t1 = _this.end; t2 = _this.offset, t2 < t1;) { t3 = _this.buffer; _this.offset = t2 + 1; if (!(t2 >= 0 && t2 < t3.length)) return A.ioore(t3, t2); t2 = t3[t2]; if (t2 === 0) { type$.List_int._as(codes); return B.Utf8Decoder_true.convert$1(codes); } B.JSArray_methods.add$1(codes, t2); } throw A.wrapException(A.ImageException$(string$.EOF_re)); }, readUint16$0() { var b1, b2, _this = this, t1 = _this.buffer, t2 = _this.offset, t3 = _this.offset = t2 + 1, t4 = t1.length; if (!(t2 >= 0 && t2 < t4)) return A.ioore(t1, t2); t2 = t1[t2]; if (typeof t2 !== "number") return t2.$and(); b1 = t2 & 255; _this.offset = t3 + 1; if (!(t3 >= 0 && t3 < t4)) return A.ioore(t1, t3); t3 = t1[t3]; if (typeof t3 !== "number") return t3.$and(); b2 = t3 & 255; if (_this.bigEndian) return b1 << 8 | b2; return b2 << 8 | b1; }, readUint24$0() { var b1, b2, b3, _this = this, t1 = _this.buffer, t2 = _this.offset, t3 = _this.offset = t2 + 1, t4 = t1.length; if (!(t2 >= 0 && t2 < t4)) return A.ioore(t1, t2); t2 = t1[t2]; if (typeof t2 !== "number") return t2.$and(); b1 = t2 & 255; t2 = _this.offset = t3 + 1; if (!(t3 >= 0 && t3 < t4)) return A.ioore(t1, t3); t3 = t1[t3]; if (typeof t3 !== "number") return t3.$and(); b2 = t3 & 255; _this.offset = t2 + 1; if (!(t2 >= 0 && t2 < t4)) return A.ioore(t1, t2); t2 = t1[t2]; if (typeof t2 !== "number") return t2.$and(); b3 = t2 & 255; if (_this.bigEndian) return b3 | b2 << 8 | b1 << 16; return b1 | b2 << 8 | b3 << 16; }, readUint32$0() { var b1, b2, b3, b4, _this = this, t1 = _this.buffer, t2 = _this.offset, t3 = _this.offset = t2 + 1, t4 = t1.length; if (!(t2 >= 0 && t2 < t4)) return A.ioore(t1, t2); t2 = t1[t2]; if (typeof t2 !== "number") return t2.$and(); b1 = t2 & 255; t2 = _this.offset = t3 + 1; if (!(t3 >= 0 && t3 < t4)) return A.ioore(t1, t3); t3 = t1[t3]; if (typeof t3 !== "number") return t3.$and(); b2 = t3 & 255; t3 = _this.offset = t2 + 1; if (!(t2 >= 0 && t2 < t4)) return A.ioore(t1, t2); t2 = t1[t2]; if (typeof t2 !== "number") return t2.$and(); b3 = t2 & 255; _this.offset = t3 + 1; if (!(t3 >= 0 && t3 < t4)) return A.ioore(t1, t3); t3 = t1[t3]; if (typeof t3 !== "number") return t3.$and(); b4 = t3 & 255; if (_this.bigEndian) return (b1 << 24 | b2 << 16 | b3 << 8 | b4) >>> 0; return (b4 << 24 | b3 << 16 | b2 << 8 | b1) >>> 0; }, readFloat64$0() { return A.uint64ToFloat64(this.readUint64$0()); }, readUint64$0() { var b1, b2, b3, b4, b5, b6, b7, b8, _this = this, t1 = _this.buffer, t2 = _this.offset, t3 = _this.offset = t2 + 1, t4 = t1.length; if (!(t2 >= 0 && t2 < t4)) return A.ioore(t1, t2); t2 = t1[t2]; if (typeof t2 !== "number") return t2.$and(); b1 = t2 & 255; t2 = _this.offset = t3 + 1; if (!(t3 >= 0 && t3 < t4)) return A.ioore(t1, t3); t3 = t1[t3]; if (typeof t3 !== "number") return t3.$and(); b2 = t3 & 255; t3 = _this.offset = t2 + 1; if (!(t2 >= 0 && t2 < t4)) return A.ioore(t1, t2); t2 = t1[t2]; if (typeof t2 !== "number") return t2.$and(); b3 = t2 & 255; t2 = _this.offset = t3 + 1; if (!(t3 >= 0 && t3 < t4)) return A.ioore(t1, t3); t3 = t1[t3]; if (typeof t3 !== "number") return t3.$and(); b4 = t3 & 255; t3 = _this.offset = t2 + 1; if (!(t2 >= 0 && t2 < t4)) return A.ioore(t1, t2); t2 = t1[t2]; if (typeof t2 !== "number") return t2.$and(); b5 = t2 & 255; t2 = _this.offset = t3 + 1; if (!(t3 >= 0 && t3 < t4)) return A.ioore(t1, t3); t3 = t1[t3]; if (typeof t3 !== "number") return t3.$and(); b6 = t3 & 255; t3 = _this.offset = t2 + 1; if (!(t2 >= 0 && t2 < t4)) return A.ioore(t1, t2); t2 = t1[t2]; if (typeof t2 !== "number") return t2.$and(); b7 = t2 & 255; _this.offset = t3 + 1; if (!(t3 >= 0 && t3 < t4)) return A.ioore(t1, t3); t3 = t1[t3]; if (typeof t3 !== "number") return t3.$and(); b8 = t3 & 255; if (_this.bigEndian) return (B.JSInt_methods._shlPositive$1(b1, 56) | B.JSInt_methods._shlPositive$1(b2, 48) | B.JSInt_methods._shlPositive$1(b3, 40) | B.JSInt_methods._shlPositive$1(b4, 32) | b5 << 24 | b6 << 16 | b7 << 8 | b8) >>> 0; return (B.JSInt_methods._shlPositive$1(b8, 56) | B.JSInt_methods._shlPositive$1(b7, 48) | B.JSInt_methods._shlPositive$1(b6, 40) | B.JSInt_methods._shlPositive$1(b5, 32) | b4 << 24 | b3 << 16 | b2 << 8 | b1) >>> 0; }, toList$2(_, offset, $length) { var s, _this = this, t1 = _this.buffer; if (type$.Uint8List._is(t1)) return _this.toUint8List$2(offset, $length); s = _this.start + offset + offset; return J.sublist$2$ax(t1, s, $length <= 0 ? _this.end : s + $length); }, toUint8List$2(offset, $length) { var t2, _this = this, len = $length == null ? _this.end - _this.offset - offset : $length, t1 = _this.buffer; if (type$.Uint8List._is(t1)) return A.NativeUint8List_NativeUint8List$view(t1.buffer, t1.byteOffset + _this.offset + offset, len); t2 = _this.offset + offset; t2 = J.sublist$2$ax(t1, t2, t2 + len); return new Uint8Array(A._ensureNativeList(t2)); }, toUint8List$0() { return this.toUint8List$2(0, null); }, toUint32List$0() { var t1 = this.buffer; if (type$.Uint8List._is(t1)) return A.NativeUint32List_NativeUint32List$view(t1.buffer, t1.byteOffset + this.offset, null); return A.NativeUint32List_NativeUint32List$view(this.toUint8List$0().buffer, 0, null); }, set$buffer(_, buffer) { this.buffer = type$.List_int._as(buffer); } }; A.Interpolation.prototype = { toString$0(_) { return "Interpolation." + this._core$_name; } }; A.NeuralQuantizer.prototype = { getIndexMap$1(image) { var t2, len, i, t3, t1 = image.width * image.height, map = new Uint8Array(t1); for (t2 = image.data, len = t2.length, i = 0; i < len; ++i) { t3 = t2[i]; t3 = this._inxSearch$3(t3 >>> 16 & 255, t3 >>> 8 & 255, t3 & 255); if (!(i < t1)) return A.ioore(map, i); map[i] = t3; } return map; }, _initialize$1(numberOfColors) { var t1, t2, t3, f, i, i0, p, p0, _this = this, _s8_ = "_network", _s10_ = "cutNetSize"; _this.set$netSize(Math.max(numberOfColors, 4)); t1 = _this.netSize; _this.__NeuralQuantizer_cutNetSize = t1 - _this.specials; _this.maxNetPos = t1 - 1; t1 = B.JSInt_methods._tdivFast$1(t1, 8); _this.__NeuralQuantizer_initRadius = t1; _this.__NeuralQuantizer_initBiasRadius = A._lateReadCheck(t1, "initRadius") * 256; t1 = _this.netSize; _this.__NeuralQuantizer__colorMap = new Int32Array(t1 * 4); t2 = t1 * 3; _this.__NeuralQuantizer_colorMap = new Uint8Array(t2); _this.specials = 3; _this.__NeuralQuantizer_bgColor = 2; t1 = B.JSInt_methods._shrOtherPositive$1(t1, 3); _this.__NeuralQuantizer__radiusPower = new Int32Array(t1); t1 = type$.double; t3 = type$.List_double; _this.set$__NeuralQuantizer__network(t3._as(A.List_List$filled(t2, 0, false, t1))); _this.set$__NeuralQuantizer__bias(t3._as(A.List_List$filled(_this.netSize, 0, false, t1))); _this.set$__NeuralQuantizer__freq(t3._as(A.List_List$filled(_this.netSize, 0, false, t1))); J.$indexSet$ax(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), 0, 0); J.$indexSet$ax(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), 1, 0); J.$indexSet$ax(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), 2, 0); J.$indexSet$ax(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), 3, 255); J.$indexSet$ax(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), 4, 255); J.$indexSet$ax(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), 5, 255); f = 1 / _this.netSize; for (i = 0; i0 = _this.specials, i < i0; ++i) { J.$indexSet$ax(A._lateReadCheck(_this.__NeuralQuantizer__freq, "_freq"), i, f); J.$indexSet$ax(A._lateReadCheck(_this.__NeuralQuantizer__bias, "_bias"), i, 0); } for (p = i0 * 3, i = i0; i < _this.netSize; ++i, p = p0) { p0 = p + 1; J.$indexSet$ax(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), p, 255 * (i - _this.specials) / A._lateReadCheck(_this.__NeuralQuantizer_cutNetSize, _s10_)); p = p0 + 1; J.$indexSet$ax(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), p0, 255 * (i - _this.specials) / A._lateReadCheck(_this.__NeuralQuantizer_cutNetSize, _s10_)); p0 = p + 1; J.$indexSet$ax(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), p, 255 * (i - _this.specials) / A._lateReadCheck(_this.__NeuralQuantizer_cutNetSize, _s10_)); J.$indexSet$ax(A._lateReadCheck(_this.__NeuralQuantizer__freq, "_freq"), i, f); J.$indexSet$ax(A._lateReadCheck(_this.__NeuralQuantizer__bias, "_bias"), i, 0); } }, _copyColorMap$0() { var i, p, q, t1, p0, t2, t3, _this = this, _s8_ = "colorMap", _s9_ = "_colorMap"; for (i = 0, p = 0, q = 0; i < _this.netSize; ++i, p = p0) { t1 = A._lateReadCheck(_this.__NeuralQuantizer_colorMap, _s8_); p0 = p + 1; t2 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); t3 = q + 2; if (!(t3 < t2.length)) return A.ioore(t2, t3); t3 = t2[t3]; if (!(p < t1.length)) return A.ioore(t1, p); t1[p] = Math.abs(t3) & 255; t3 = A._lateReadCheck(_this.__NeuralQuantizer_colorMap, _s8_); p = p0 + 1; t1 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); t2 = q + 1; if (!(t2 < t1.length)) return A.ioore(t1, t2); t2 = t1[t2]; if (!(p0 < t3.length)) return A.ioore(t3, p0); t3[p0] = Math.abs(t2) & 255; t2 = A._lateReadCheck(_this.__NeuralQuantizer_colorMap, _s8_); p0 = p + 1; t3 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); if (!(q < t3.length)) return A.ioore(t3, q); t3 = t3[q]; if (!(p < t2.length)) return A.ioore(t2, p); t2[p] = Math.abs(t3) & 255; q += 4; } }, _inxSearch$3(b, g, r) { var i, j, bestd, best, p, t2, dist, a, _this = this, _s9_ = "_colorMap", t1 = _this._netIndex; if (!(g < 256)) return A.ioore(t1, g); i = t1[g]; j = i - 1; bestd = 1000; best = -1; while (true) { t1 = i < _this.netSize; if (!(t1 || j >= 0)) break; if (t1) { p = i * 4; t1 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); t2 = p + 1; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); dist = t1[t2] - g; if (dist >= bestd) i = _this.netSize; else { if (dist < 0) dist = -dist; t1 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); if (!(p >= 0 && p < t1.length)) return A.ioore(t1, p); a = t1[p] - b; dist += a < 0 ? -a : a; if (dist < bestd) { t1 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); t2 = p + 2; if (!(t2 < t1.length)) return A.ioore(t1, t2); a = t1[t2] - r; dist += a < 0 ? -a : a; if (dist < bestd) { best = i; bestd = dist; } } ++i; } } if (j >= 0) { p = j * 4; t1 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); t2 = p + 1; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); dist = g - t1[t2]; if (dist >= bestd) j = -1; else { if (dist < 0) dist = -dist; t1 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); if (!(p >= 0 && p < t1.length)) return A.ioore(t1, p); a = t1[p] - b; dist += a < 0 ? -a : a; if (dist < bestd) { t1 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); t2 = p + 2; if (!(t2 < t1.length)) return A.ioore(t1, t2); a = t1[t2] - r; dist += a < 0 ? -a : a; if (dist < bestd) { best = j; bestd = dist; } } --j; } } } return best; }, _fix$0() { var i, p, q, j, t1, x, t2, _this = this, _s9_ = "_colorMap"; for (i = 0, p = 0, q = 0; i < _this.netSize; ++i, q += 4) { for (j = 0; j < 3; ++j, ++p) { t1 = J.$index$asx(A._lateReadCheck(_this.__NeuralQuantizer__network, "_network"), p); if (typeof t1 !== "number") return A.iae(t1); x = B.JSNumber_methods.toInt$0(0.5 + t1); if (x < 0) x = 0; if (x > 255) x = 255; t1 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); t2 = q + j; if (!(t2 < t1.length)) return A.ioore(t1, t2); t1[t2] = x; } t1 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); t2 = q + 3; if (!(t2 < t1.length)) return A.ioore(t1, t2); t1[t2] = i; } }, _inxBuild$0() { var t1, previousColor, startPos, i, p, t2, t3, smallval, j, q, q0, j0, smallpos, t4, t5, _this = this, _s9_ = "_colorMap"; for (t1 = _this._netIndex, previousColor = 0, startPos = 0, i = 0, p = 0; i < _this.netSize; p = q, i = j) { t2 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); t3 = p + 1; if (!(t3 < t2.length)) return A.ioore(t2, t3); smallval = t2[t3]; for (j = i + 1, q = p + 4, q0 = q, j0 = j, smallpos = i; j0 < _this.netSize; ++j0, q0 += 4) { t2 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); t4 = q0 + 1; if (!(t4 < t2.length)) return A.ioore(t2, t4); if (t2[t4] < smallval) { t2 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); if (!(t4 < t2.length)) return A.ioore(t2, t4); smallval = t2[t4]; smallpos = j0; } } q0 = smallpos * 4; if (i !== smallpos) { t2 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); if (!(q0 < t2.length)) return A.ioore(t2, q0); j0 = t2[q0]; t2 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); t4 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); if (!(p < t4.length)) return A.ioore(t4, p); t4 = t4[p]; if (!(q0 < t2.length)) return A.ioore(t2, q0); t2[q0] = t4; t4 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); if (!(p < t4.length)) return A.ioore(t4, p); t4[p] = j0; t4 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); t2 = q0 + 1; if (!(t2 < t4.length)) return A.ioore(t4, t2); j0 = t4[t2]; t4 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); t5 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); if (!(t3 < t5.length)) return A.ioore(t5, t3); t5 = t5[t3]; if (!(t2 < t4.length)) return A.ioore(t4, t2); t4[t2] = t5; t5 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); if (!(t3 < t5.length)) return A.ioore(t5, t3); t5[t3] = j0; t3 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); t5 = q0 + 2; if (!(t5 < t3.length)) return A.ioore(t3, t5); j0 = t3[t5]; t3 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); t2 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); t4 = p + 2; if (!(t4 < t2.length)) return A.ioore(t2, t4); t2 = t2[t4]; if (!(t5 < t3.length)) return A.ioore(t3, t5); t3[t5] = t2; t2 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); if (!(t4 < t2.length)) return A.ioore(t2, t4); t2[t4] = j0; t4 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); t2 = q0 + 3; if (!(t2 < t4.length)) return A.ioore(t4, t2); j0 = t4[t2]; t4 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); t5 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); t3 = p + 3; if (!(t3 < t5.length)) return A.ioore(t5, t3); t5 = t5[t3]; if (!(t2 < t4.length)) return A.ioore(t4, t2); t4[t2] = t5; t5 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); if (!(t3 < t5.length)) return A.ioore(t5, t3); t5[t3] = j0; } if (smallval !== previousColor) { if (!(previousColor >= 0 && previousColor < 256)) return A.ioore(t1, previousColor); t1[previousColor] = startPos + i >>> 1; for (j0 = previousColor + 1; j0 < smallval; ++j0) { if (!(j0 < 256)) return A.ioore(t1, j0); t1[j0] = i; } startPos = i; previousColor = smallval; } } t2 = _this.maxNetPos; t2.toString; t3 = B.JSInt_methods._shrOtherPositive$1(startPos + t2, 1); if (!(previousColor >= 0 && previousColor < 256)) return A.ioore(t1, previousColor); t1[previousColor] = t3; for (j = previousColor + 1; j < 256; ++j) t1[j] = t2; }, _updateRadiusPower$2(rad, alpha) { var t1, i, t2, t3; for (t1 = rad * rad, i = 0; i < rad; ++i) { t2 = A._lateReadCheck(this.__NeuralQuantizer__radiusPower, "_radiusPower"); t3 = B.JSNumber_methods.toInt$0(alpha * ((t1 - i * i) * 256 / t1)); if (!(i < t2.length)) return A.ioore(t2, i); t2[i] = t3; } }, _learn$1(image) { var rad, step, alpha, pos, i, p, red, green, blue, j, a, t3, t4, t5, t6, _this = this, _s8_ = "_network", _s7_ = "bgColor", biasRadius = A._lateReadCheck(_this.__NeuralQuantizer_initBiasRadius, "initBiasRadius"), t1 = _this.samplingFactor, alphaDec = 30 + B.JSInt_methods._tdivFast$1(t1 - 1, 3), t2 = image.data, lengthCount = t2.length, samplePixels = B.JSInt_methods.$tdiv(lengthCount, t1), delta = Math.max(B.JSInt_methods._tdivFast$1(samplePixels, 100), 1); if (delta === 0) delta = 1; rad = B.JSInt_methods._shrOtherPositive$1(biasRadius, 8); if (rad <= 1) rad = 0; _this._updateRadiusPower$2(rad, 1024); if (lengthCount < 1509) step = _this.samplingFactor = 1; else if (B.JSInt_methods.$mod(lengthCount, 499) !== 0) step = 499; else if (B.JSInt_methods.$mod(lengthCount, 491) !== 0) step = 491; else step = B.JSInt_methods.$mod(lengthCount, 487) !== 0 ? 487 : 503; for (alpha = 1024, pos = 0, i = 0; i < samplePixels;) { if (!(pos >= 0 && pos < lengthCount)) return A.ioore(t2, pos); p = t2[pos]; red = p & 255; green = p >>> 8 & 255; blue = p >>> 16 & 255; if (i === 0) { J.$indexSet$ax(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), A._lateReadCheck(_this.__NeuralQuantizer_bgColor, _s7_) * 3, blue); J.$indexSet$ax(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), A._lateReadCheck(_this.__NeuralQuantizer_bgColor, _s7_) * 3 + 1, green); J.$indexSet$ax(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), A._lateReadCheck(_this.__NeuralQuantizer_bgColor, _s7_) * 3 + 2, red); } j = _this._specialFind$3(blue, green, red); if (j < 0) j = _this._contest$3(blue, green, red); if (j >= _this.specials) { a = alpha / 1024; p = j * 3; t1 = A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_); t3 = J.getInterceptor$asx(t1); t4 = t3.$index(t1, p); t5 = J.$index$asx(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), p); if (typeof t5 !== "number") return t5.$sub(); if (typeof t4 !== "number") return t4.$sub(); t3.$indexSet(t1, p, t4 - a * (t5 - blue)); t5 = A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_); t4 = p + 1; t1 = J.getInterceptor$asx(t5); t3 = t1.$index(t5, t4); t6 = J.$index$asx(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), t4); if (typeof t6 !== "number") return t6.$sub(); if (typeof t3 !== "number") return t3.$sub(); t1.$indexSet(t5, t4, t3 - a * (t6 - green)); t6 = A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_); t3 = p + 2; t4 = J.getInterceptor$asx(t6); t5 = t4.$index(t6, t3); t1 = J.$index$asx(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), t3); if (typeof t1 !== "number") return t1.$sub(); if (typeof t5 !== "number") return t5.$sub(); t4.$indexSet(t6, t3, t5 - a * (t1 - red)); if (rad > 0) _this._alterNeighbors$6(a, rad, j, blue, green, red); } pos += step; for (; pos >= lengthCount;) pos -= lengthCount; ++i; if (B.JSInt_methods.$mod(i, delta) === 0) { alpha -= B.JSInt_methods.$tdiv(alpha, alphaDec); biasRadius -= B.JSInt_methods._tdivFast$1(biasRadius, 30); rad = B.JSInt_methods._shrOtherPositive$1(biasRadius, 8); if (rad <= 1) rad = 0; _this._updateRadiusPower$2(rad, alpha); } } }, _alterNeighbors$6(alpha, rad, i, b, g, r) { var hi, hi0, j, k, m, t1, t2, m0, a, p, t3, t4, t5, _this = this, _s8_ = "_network", lo = i - rad, lo0 = _this.specials - 1; if (lo < lo0) lo = lo0; hi = i + rad; hi0 = _this.netSize; if (hi > hi0) hi = hi0; j = i + 1; k = i - 1; m = 1; while (true) { t1 = j < hi; if (!(t1 || k > lo)) break; t2 = A._lateReadCheck(_this.__NeuralQuantizer__radiusPower, "_radiusPower"); m0 = m + 1; if (!(m < t2.length)) return A.ioore(t2, m); a = t2[m]; if (t1) { p = j * 3; t1 = A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_); t2 = J.getInterceptor$asx(t1); t3 = t2.$index(t1, p); t4 = J.$index$asx(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), p); if (typeof t4 !== "number") return t4.$sub(); if (typeof t3 !== "number") return t3.$sub(); t2.$indexSet(t1, p, t3 - a * (t4 - b) / 262144); t4 = A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_); t3 = p + 1; t1 = J.getInterceptor$asx(t4); t2 = t1.$index(t4, t3); t5 = J.$index$asx(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), t3); if (typeof t5 !== "number") return t5.$sub(); if (typeof t2 !== "number") return t2.$sub(); t1.$indexSet(t4, t3, t2 - a * (t5 - g) / 262144); t5 = A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_); t2 = p + 2; t3 = J.getInterceptor$asx(t5); t4 = t3.$index(t5, t2); t1 = J.$index$asx(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), t2); if (typeof t1 !== "number") return t1.$sub(); if (typeof t4 !== "number") return t4.$sub(); t3.$indexSet(t5, t2, t4 - a * (t1 - r) / 262144); ++j; } if (k > lo) { p = k * 3; t1 = A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_); t2 = J.getInterceptor$asx(t1); t3 = t2.$index(t1, p); t4 = J.$index$asx(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), p); if (typeof t4 !== "number") return t4.$sub(); if (typeof t3 !== "number") return t3.$sub(); t2.$indexSet(t1, p, t3 - a * (t4 - b) / 262144); t4 = A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_); t3 = p + 1; t1 = J.getInterceptor$asx(t4); t2 = t1.$index(t4, t3); t5 = J.$index$asx(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), t3); if (typeof t5 !== "number") return t5.$sub(); if (typeof t2 !== "number") return t2.$sub(); t1.$indexSet(t4, t3, t2 - a * (t5 - g) / 262144); t5 = A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_); t2 = p + 2; t3 = J.getInterceptor$asx(t5); t4 = t3.$index(t5, t2); t1 = J.$index$asx(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), t2); if (typeof t1 !== "number") return t1.$sub(); if (typeof t4 !== "number") return t4.$sub(); t3.$indexSet(t5, t2, t4 - a * (t1 - r) / 262144); --k; } m = m0; } }, _contest$3(b, g, r) { var i, p, bestBiasDist, bestd, bestpos, bestbiaspos, p0, t1, dist, a, a0, biasDist, t2, t3, t4, _this = this, _1000000000000000019884624838656 = 1e30, _s8_ = "_network", _s5_ = "_bias", _s5_0 = "_freq"; for (i = _this.specials, p = i * 3, bestBiasDist = _1000000000000000019884624838656, bestd = bestBiasDist, bestpos = -1, bestbiaspos = -1; i < _this.netSize; ++i, p = p0) { p0 = p + 1; t1 = J.$index$asx(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), p); if (typeof t1 !== "number") return t1.$sub(); dist = t1 - b; if (dist < 0) dist = -dist; p = p0 + 1; t1 = J.$index$asx(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), p0); if (typeof t1 !== "number") return t1.$sub(); a = t1 - g; if (a < 0) a = -a; p0 = p + 1; t1 = J.$index$asx(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), p); if (typeof t1 !== "number") return t1.$sub(); a0 = t1 - r; if (a0 < 0) a0 = -a0; dist = dist + a + a0; if (dist < bestd) { bestpos = i; bestd = dist; } t1 = J.$index$asx(A._lateReadCheck(_this.__NeuralQuantizer__bias, _s5_), i); if (typeof t1 !== "number") return A.iae(t1); biasDist = dist - t1; if (biasDist < bestBiasDist) { bestbiaspos = i; bestBiasDist = biasDist; } t1 = A._lateReadCheck(_this.__NeuralQuantizer__freq, _s5_0); t2 = J.getInterceptor$asx(t1); t3 = t2.$index(t1, i); t4 = J.$index$asx(A._lateReadCheck(_this.__NeuralQuantizer__freq, _s5_0), i); if (typeof t4 !== "number") return A.iae(t4); if (typeof t3 !== "number") return t3.$sub(); t2.$indexSet(t1, i, t3 - 0.0009765625 * t4); t4 = A._lateReadCheck(_this.__NeuralQuantizer__bias, _s5_); t3 = J.getInterceptor$asx(t4); t1 = t3.$index(t4, i); t2 = J.$index$asx(A._lateReadCheck(_this.__NeuralQuantizer__freq, _s5_0), i); if (typeof t2 !== "number") return A.iae(t2); if (typeof t1 !== "number") return t1.$add(); t3.$indexSet(t4, i, t1 + t2); } t1 = A._lateReadCheck(_this.__NeuralQuantizer__freq, _s5_0); t2 = J.getInterceptor$asx(t1); t3 = t2.$index(t1, bestpos); if (typeof t3 !== "number") return t3.$add(); t2.$indexSet(t1, bestpos, t3 + 0.0009765625); t3 = A._lateReadCheck(_this.__NeuralQuantizer__bias, _s5_); t1 = J.getInterceptor$asx(t3); t2 = t1.$index(t3, bestpos); if (typeof t2 !== "number") return t2.$sub(); t1.$indexSet(t3, bestpos, t2 - 1); return bestbiaspos; }, _specialFind$3(b, g, r) { var i, p, p0, t1, _this = this, _s8_ = "_network"; for (i = 0, p = 0; i < _this.specials; ++i) { p0 = p + 1; if (J.$eq$(J.$index$asx(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), p), b)) { p = p0 + 1; if (J.$eq$(J.$index$asx(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), p0), g)) { p0 = p + 1; t1 = J.$eq$(J.$index$asx(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), p), r); p = p0; } else t1 = false; } else { p = p0; t1 = false; } if (t1) return i; } return -1; }, set$netSize(netSize) { this.netSize = A._asInt(netSize); }, set$__NeuralQuantizer__network(__NeuralQuantizer__network) { this.__NeuralQuantizer__network = type$.List_double._as(__NeuralQuantizer__network); }, set$__NeuralQuantizer__bias(__NeuralQuantizer__bias) { this.__NeuralQuantizer__bias = type$.List_double._as(__NeuralQuantizer__bias); }, set$__NeuralQuantizer__freq(__NeuralQuantizer__freq) { this.__NeuralQuantizer__freq = type$.List_double._as(__NeuralQuantizer__freq); } }; A.OutputBuffer.prototype = { writeByte$1(value) { var t1, t2, _this = this; if (_this.length === _this._buffer.length) _this._expandBuffer$0(); t1 = _this._buffer; t2 = _this.length++; if (!(t2 >= 0 && t2 < t1.length)) return A.ioore(t1, t2); t1[t2] = value & 255; }, writeBytes$2(bytes, len) { var t1, t2, t3, t4, _this = this; type$.List_int._as(bytes); if (len == null) len = J.get$length$asx(bytes); for (; t1 = _this.length, t2 = t1 + len, t3 = _this._buffer, t4 = t3.length, t2 > t4;) _this._expandBuffer$1(t2 - t4); B.NativeUint8List_methods.setRange$3(t3, t1, t2, bytes); _this.length += len; }, writeBytes$1(bytes) { return this.writeBytes$2(bytes, null); }, writeUint16$1(value) { var _this = this; if (_this.bigEndian) { _this.writeByte$1(B.JSInt_methods._shrOtherPositive$1(value, 8) & 255); _this.writeByte$1(value & 255); return; } _this.writeByte$1(value & 255); _this.writeByte$1(B.JSInt_methods._shrOtherPositive$1(value, 8) & 255); }, writeUint32$1(value) { var _this = this; if (_this.bigEndian) { _this.writeByte$1(B.JSInt_methods._shrOtherPositive$1(value, 24) & 255); _this.writeByte$1(B.JSInt_methods._shrOtherPositive$1(value, 16) & 255); _this.writeByte$1(B.JSInt_methods._shrOtherPositive$1(value, 8) & 255); _this.writeByte$1(value & 255); return; } _this.writeByte$1(value & 255); _this.writeByte$1(B.JSInt_methods._shrOtherPositive$1(value, 8) & 255); _this.writeByte$1(B.JSInt_methods._shrOtherPositive$1(value, 16) & 255); _this.writeByte$1(B.JSInt_methods._shrOtherPositive$1(value, 24) & 255); }, _expandBuffer$1(required) { var blockSize, t1, t2, newBuffer; if (required != null) blockSize = required; else { t1 = this._buffer.length; blockSize = t1 === 0 ? 8192 : t1 * 2; } t1 = this._buffer; t2 = t1.length; newBuffer = new Uint8Array(t2 + blockSize); B.NativeUint8List_methods.setRange$3(newBuffer, 0, t2, t1); this._buffer = newBuffer; }, _expandBuffer$0() { return this._expandBuffer$1(null); }, get$length(receiver) { return this.length; } }; A.Quantizer.prototype = {}; A._DbInboundGroupSessionBundle.prototype = { toJson$0() { return A.LinkedHashMap_LinkedHashMap$_literal(["dbSession", this.dbSession.toJson$0(), "verified", this.verified], type$.String, type$.Object); } }; A.GenerateUploadKeysArgs.prototype = { toJson$0() { var t1 = this.dbSessions, t2 = A._arrayInstanceType(t1), t3 = t2._eval$1("MappedListIterable<1,Map>"); return A.LinkedHashMap_LinkedHashMap$_literal(["pubkey", this.pubkey, "dbSessions", A.List_List$of(new A.MappedListIterable(t1, t2._eval$1("Map(1)")._as(new A.GenerateUploadKeysArgs_toJson_closure()), t3), true, t3._eval$1("ListIterable.E")), "userId", this.userId], type$.String, type$.Object); } }; A.GenerateUploadKeysArgs_GenerateUploadKeysArgs$fromJson_closure.prototype = { call$1(e) { var t2, t1 = type$.Map_dynamic_dynamic; t1._as(e); t2 = J.getInterceptor$asx(e); t1 = A.LinkedHashMap_LinkedHashMap$from(t1._as(t2.$index(e, "dbSession")), type$.String, type$.dynamic); return new A._DbInboundGroupSessionBundle(new A.StoredInboundGroupSession(A._asString(t1.$index(0, "room_id")), A._asString(t1.$index(0, "session_id")), A._asString(t1.$index(0, "pickle")), A._asString(t1.$index(0, "content")), A._asString(t1.$index(0, "indexes")), A._asString(t1.$index(0, "allowed_at_index")), A._asBool(t1.$index(0, "uploaded")), A._asString(t1.$index(0, "sender_key")), A._asString(t1.$index(0, "sender_claimed_keys"))), A._asBool(t2.$index(e, "verified"))); }, $signature: 37 }; A.GenerateUploadKeysArgs_toJson_closure.prototype = { call$1(e) { return type$._DbInboundGroupSessionBundle._as(e).toJson$0(); }, $signature: 38 }; A.SessionKey.prototype = { get$forwardingCurve25519KeyChain() { var _s31_ = "forwarding_curve25519_key_chain", t1 = this.content, t2 = J.getInterceptor$asx(t1); t1 = t2.$index(t1, _s31_) != null ? A.List_List$from(type$.Iterable_dynamic._as(t2.$index(t1, _s31_)), type$.String) : null; return t1 == null ? A._setArrayType([], type$.JSArray_String) : t1; }, SessionKey$fromDb$2(dbEntry, key) { var e, s, t2, t3, exception, _this = this, _s19_ = "sender_claimed_keys", _s26_ = "sender_claimed_ed25519_key", t1 = type$.String, parsedSenderClaimedKeys = A.FilterMap_catchMap(A.Event_getMapFromPayload(dbEntry.senderClaimedKeys), new A.SessionKey$fromDb_closure1(), t1, type$.dynamic, t1, t1); if (parsedSenderClaimedKeys._length !== 0) t1 = parsedSenderClaimedKeys; else { t2 = _this.content; t3 = J.getInterceptor$asx(t2); if (type$.Map_dynamic_dynamic._is(t3.$index(t2, _s19_))) t1 = t3.$index(t2, _s19_).catchMap$1(new A.SessionKey$fromDb_closure2()); else t1 = typeof t3.$index(t2, _s26_) == "string" ? A.LinkedHashMap_LinkedHashMap$_literal(["ed25519", A._asString(t3.$index(t2, _s26_))], t1, t1) : A.LinkedHashMap_LinkedHashMap$_empty(t1, t1); } _this.set$__SessionKey_senderClaimedKeys(type$.Map_String_String._as(t1)); try { t1 = _this.inboundGroupSession; t1.toString; J.unpickle$2$x(t1, key, dbEntry.pickle); } catch (exception) { e = A.unwrapException(exception); s = A.getTraceFromException(exception); t1 = _this.inboundGroupSession; if (t1 != null) J.free$0$x(t1); _this.inboundGroupSession = null; $.$get$Logs__singleton().addLogEvent$1(new A.LogEvent("[LibOlm] Unable to unpickle inboundGroupSession", e, type$.nullable_StackTrace._as(s), B.Level_1)); } }, set$__SessionKey_senderClaimedKeys(__SessionKey_senderClaimedKeys) { this.__SessionKey_senderClaimedKeys = type$.Map_String_String._as(__SessionKey_senderClaimedKeys); } }; A.SessionKey$fromDb_closure.prototype = { call$2(k, v) { return new A.MapEntry(A._asString(k), A._asString(v), type$.MapEntry_String_String); }, $signature: 17 }; A.SessionKey$fromDb_closure0.prototype = { call$2(k, v) { return new A.MapEntry(A._asString(k), A.LinkedHashMap_LinkedHashMap$from(type$.Map_dynamic_dynamic._as(v), type$.String, type$.int), type$.MapEntry_of_String_and_Map_String_int); }, $signature: 40 }; A.SessionKey$fromDb_closure1.prototype = { call$2(k, v) { return new A.MapEntry(A._asString(k), A._asString(v), type$.MapEntry_String_String); }, $signature: 17 }; A.SessionKey$fromDb_closure2.prototype = { call$2(k, v) { return new A.MapEntry(k, v, type$.MapEntry_String_String); }, $signature: 41 }; A.StoredInboundGroupSession.prototype = { toJson$0() { var _this = this; return A.LinkedHashMap_LinkedHashMap$_literal(["room_id", _this.roomId, "session_id", _this.sessionId, "pickle", _this.pickle, "content", _this.content, "indexes", _this.indexes, "allowed_at_index", _this.allowedAtIndex, "uploaded", _this.uploaded, "sender_key", _this.senderKey, "sender_claimed_keys", _this.senderClaimedKeys], type$.String, type$.dynamic); } }; A.Pbkdf2Params.prototype = {}; A.AesCtrParams.prototype = {}; A.MatrixImageFileResizedResponse.prototype = { toJson$0() { var t2, _this = this, t1 = A.LinkedHashMap_LinkedHashMap$_empty(type$.String, type$.dynamic); t1.$indexSet(0, "bytes", _this.bytes); t1.$indexSet(0, "width", _this.width); t1.$indexSet(0, "height", _this.height); t2 = _this.blurhash; if (t2 != null) t1.$indexSet(0, "blurhash", t2); t2 = _this.originalHeight; if (t2 != null) t1.$indexSet(0, "originalHeight", t2); t2 = _this.originalWidth; if (t2 != null) t1.$indexSet(0, "originalWidth", t2); return t1; } }; A.MatrixImageFileResizeArguments.prototype = { toJson$0() { var _this = this; return A.LinkedHashMap_LinkedHashMap$_literal(["bytes", _this.bytes, "maxDimension", _this.maxDimension, "fileName", _this.fileName, "calcBlurhash", _this.calcBlurhash], type$.String, type$.Object); } }; A.WebWorkerData.prototype = { toJson$0() { var t2, t1 = A.LinkedHashMap_LinkedHashMap$_empty(type$.String, type$.nullable_Object); t1.$indexSet(0, "label", this.label); t2 = this.name; if (t2 != null) t1.$indexSet(0, "name", t2.index); t1.$indexSet(0, "data", this.data); return t1; } }; A.WebWorkerOperations.prototype = { toString$0(_) { return "WebWorkerOperations." + this._core$_name; } }; A.startWebWorker_closure.prototype = { call$1($event) { return this.$call$body$startWebWorker_closure(type$.MessageEvent._as($event)); }, $call$body$startWebWorker_closure($event) { var $async$goto = 0, $async$completer = A._makeAsyncAwaitCompleter(type$.Null), $async$returnValue, $async$next = [], data, operation, result, result0, result1, e, s, e0, s0, t3, exception, t1, t2; var $async$call$1 = A._wrapJsFunctionForAsync(function($async$errorCode, $async$result) { if ($async$errorCode === 1) return A._asyncRethrow($async$result, $async$completer); while (true) switch ($async$goto) { case 0: // Function start t1 = $event.data; t2 = new A._AcceptStructuredCloneDart2Js([], []); t2.mustCopy = true; data = t2.walk$1(t1); try { t1 = type$.LinkedHashMap_dynamic_dynamic._as(data); t2 = t1.$index(0, "label"); if (t1.containsKey$1(0, "name")) { t3 = A._asInt(t1.$index(0, "name")); if (!(t3 >= 0 && t3 < 3)) { $async$returnValue = A.ioore(B.List_JmU, t3); // goto return $async$goto = 1; break; } t3 = B.List_JmU[t3]; } else t3 = null; operation = new A.WebWorkerData(t2, t3, t1.$index(0, "data")); switch (operation.name) { case B.WebWorkerOperations_0: t1 = A.LinkedHashMap_LinkedHashMap$from(type$.Map_dynamic_dynamic._as(operation.data), type$.String, type$.dynamic); result = A.MatrixImageFile_resizeImplementation(new A.MatrixImageFileResizeArguments(type$.Uint8List._as(t1.$index(0, "bytes")), A._asInt(t1.$index(0, "maxDimension")), A._asString(t1.$index(0, "fileName")), A._asBool(t1.$index(0, "calcBlurhash")))); t1 = A._asDouble(operation.label); t2 = result; A.sendResponse(t1, t2 == null ? null : t2.toJson$0()); break; case B.WebWorkerOperations_1: t1 = type$.WhereTypeIterable_int; result0 = A.MatrixImageFile_calcMetadataImplementation(new Uint8Array(A._ensureNativeList(A.List_List$of(new A.WhereTypeIterable(type$.JsArray_dynamic._as(operation.data), t1), true, t1._eval$1("Iterable.E"))))); t1 = A._asDouble(operation.label); result0 = result0; A.sendResponse(t1, result0 == null ? null : result0.toJson$0()); break; case B.WebWorkerOperations_2: t1 = type$.dynamic; result1 = A.generateUploadKeysImplementation(A.GenerateUploadKeysArgs_GenerateUploadKeysArgs$fromJson(A.LinkedHashMap_LinkedHashMap$from(type$.Map_dynamic_dynamic._as(operation.data), t1, t1))); A.sendResponse(A._asDouble(operation.label), result1.toJson$0()); break; default: throw A.wrapException(new A.NullThrownError()); } } catch (exception) { t1 = A.unwrapException(exception); if (type$.Event._is(t1)) { e = t1; s = A.getTraceFromException(exception); A.allowInterop(A.web_worker___replyError$closure(), type$.void_Function_3_nullable_Object_and_StackTrace_and_double).call$3(type$.Request._as(J.get$target$x(e)).error, s, A._asDouble(J.$index$asx(data, "label"))); } else { e0 = t1; s0 = A.getTraceFromException(exception); A.allowInterop(A.web_worker___replyError$closure(), type$.void_Function_3_nullable_Object_and_StackTrace_and_double).call$3(e0, s0, A._asDouble(J.$index$asx(data, "label"))); } } case 1: // return return A._asyncReturn($async$returnValue, $async$completer); } }); return A._asyncStartSync($async$call$1, $async$completer); }, $signature: 42 }; A.KeyBackupData.prototype = { toJson$0() { var _this = this; return A.LinkedHashMap_LinkedHashMap$_literal(["first_message_index", _this.firstMessageIndex, "forwarded_count", _this.forwardedCount, "is_verified", _this.isVerified, "session_data", _this.sessionData], type$.String, type$.dynamic); } }; A.RoomKeyBackup.prototype = { toJson$0() { var t1 = this.sessions, t2 = type$.String; return A.LinkedHashMap_LinkedHashMap$_literal(["sessions", t1.map$2$1(t1, new A.RoomKeyBackup_toJson_closure(), t2, type$.Map_String_dynamic)], t2, type$.dynamic); } }; A.RoomKeyBackup_toJson_closure.prototype = { call$2(k, v) { return new A.MapEntry(A._asString(k), type$.KeyBackupData._as(v).toJson$0(), type$.MapEntry_of_String_and_Map_String_dynamic); }, $signature: 43 }; A.RoomKeys.prototype = { toJson$0() { var t1 = this.rooms, t2 = type$.String; return A.LinkedHashMap_LinkedHashMap$_literal(["rooms", t1.map$2$1(t1, new A.RoomKeys_toJson_closure(), t2, type$.Map_String_dynamic)], t2, type$.dynamic); } }; A.RoomKeys_toJson_closure.prototype = { call$2(k, v) { return new A.MapEntry(A._asString(k), type$.RoomKeyBackup._as(v).toJson$0(), type$.MapEntry_of_String_and_Map_String_dynamic); }, $signature: 44 }; A.FilterMap_filterMap_closure.prototype = { call$1(e) { this.K._eval$1("@<0>")._bind$1(this.V)._eval$1("MapEntry<1,2>")._as(e); return this.f.call$2(e.key, e.value); }, $signature() { var _this = this; return _this.K2._eval$1("@<0>")._bind$1(_this.V2)._bind$1(_this.K)._bind$1(_this.V)._eval$1("MapEntry<1,2>?(MapEntry<3,4>)"); } }; A.FilterMap_catchMap_closure.prototype = { call$2(k, v) { var t1, exception; this.K._as(k); this.V._as(v); try { t1 = this.f.call$2(k, v); return t1; } catch (exception) { return null; } }, $signature() { var _this = this; return _this.K2._eval$1("@<0>")._bind$1(_this.V2)._bind$1(_this.K)._bind$1(_this.V)._eval$1("MapEntry<1,2>?(3,4)"); } }; A.Level.prototype = { toString$0(_) { return "Level." + this._core$_name; } }; A.Logs.prototype = { addLogEvent$1(logEvent) { var t1, logsStr, t2; B.JSArray_methods.add$1(this.outputEvents, logEvent); t1 = logEvent.level.index; if (t1 <= 3) { logsStr = "[Matrix] " + logEvent.title + B.JSString_methods.$add(" - ", J.toString$0$(logEvent.exception)); t2 = logEvent.stackTrace; if (t2 != null) logsStr += "\n" + t2.toString$0(0); switch (t1) { case 0: window; if (typeof console != "undefined") window.console.error("!!!CRITICAL!!! " + logsStr); break; case 1: window; if (typeof console != "undefined") window.console.error(logsStr); break; case 2: window; if (typeof console != "undefined") window.console.warn(logsStr); break; case 3: window; if (typeof console != "undefined") window.console.info(logsStr); break; case 4: window; if (typeof console != "undefined") window.console.debug(logsStr); break; case 5: window; if (typeof console != "undefined") window.console.log(logsStr); break; } } } }; A.LogEvent.prototype = {}; A.EncryptResult.prototype = {}; A.DecryptResult.prototype = {}; A.Account.prototype = {}; A.Session.prototype = {}; A.Utility.prototype = {}; A.InboundGroupSession.prototype = {}; A.OutboundGroupSession.prototype = {}; A.SAS.prototype = {}; A.PkEncryptResult.prototype = {}; A.PkEncryption.prototype = {}; A.PkDecryption.prototype = {}; A.PkSigning.prototype = {}; (function aliases() { var _ = J.Interceptor.prototype; _.super$Interceptor$toString = _.toString$0; _ = J.LegacyJavaScriptObject.prototype; _.super$LegacyJavaScriptObject$toString = _.toString$0; _ = A.JsLinkedHashMap.prototype; _.super$JsLinkedHashMap$internalContainsKey = _.internalContainsKey$1; _.super$JsLinkedHashMap$internalGet = _.internalGet$1; _.super$JsLinkedHashMap$internalSet = _.internalSet$2; _ = A.ListMixin.prototype; _.super$ListMixin$setRange = _.setRange$4; _ = A.Object.prototype; _.super$Object$toString = _.toString$0; _ = A.JsObject.prototype; _.super$JsObject$$index = _.$index; _.super$JsObject$$indexSet = _.$indexSet; _ = A._JsArray_JsObject_ListMixin.prototype; _.super$_JsArray_JsObject_ListMixin$$indexSet = _.$indexSet; })(); (function installTearOffs() { var _static_1 = hunkHelpers._static_1, _static_0 = hunkHelpers._static_0, _static_2 = hunkHelpers._static_2, _instance_2_u = hunkHelpers._instance_2u, _instance_1_u = hunkHelpers._instance_1u, _static = hunkHelpers.installStaticTearOff; _static_1(A, "_js_helper_GeneralConstantMap__constantMapHashCode$closure", "GeneralConstantMap__constantMapHashCode", 11); _static_1(A, "async__AsyncRun__scheduleImmediateJsOverride$closure", "_AsyncRun__scheduleImmediateJsOverride", 10); _static_1(A, "async__AsyncRun__scheduleImmediateWithSetImmediate$closure", "_AsyncRun__scheduleImmediateWithSetImmediate", 10); _static_1(A, "async__AsyncRun__scheduleImmediateWithTimer$closure", "_AsyncRun__scheduleImmediateWithTimer", 10); _static_0(A, "async___startMicrotaskLoop$closure", "_startMicrotaskLoop", 2); _static_2(A, "collection___defaultEquals$closure", "_defaultEquals", 47); _static_1(A, "collection___defaultHashCode$closure", "_defaultHashCode", 11); _static_1(A, "convert___defaultToEncodable$closure", "_defaultToEncodable", 4); _static_1(A, "js___convertToDart$closure", "_convertToDart", 48); _static_1(A, "blurhash___maxChannelAbs$closure", "_maxChannelAbs", 49); var _; _instance_2_u(_ = A.JpegScan.prototype, "get$_decodeBaseline", "_decodeBaseline$2", 8); _instance_2_u(_, "get$_decodeDCFirst", "_decodeDCFirst$2", 8); _instance_2_u(_, "get$_decodeDCSuccessive", "_decodeDCSuccessive$2", 12); _instance_2_u(_, "get$_decodeACFirst", "_decodeACFirst$2", 8); _instance_2_u(_, "get$_decodeACSuccessive", "_decodeACSuccessive$2", 12); _static_1(A, "vp8_filter_VP8Filter_VE4$closure", "VP8Filter_VE4", 0); _static_1(A, "vp8_filter_VP8Filter_HE4$closure", "VP8Filter_HE4", 0); _static_1(A, "vp8_filter_VP8Filter_DC4$closure", "VP8Filter_DC4", 0); _static_1(A, "vp8_filter_VP8Filter_TM4$closure", "VP8Filter_TM4", 0); _static_1(A, "vp8_filter_VP8Filter_TM8uv$closure", "VP8Filter_TM8uv", 0); _static_1(A, "vp8_filter_VP8Filter_TM16$closure", "VP8Filter_TM16", 0); _static_1(A, "vp8_filter_VP8Filter_RD4$closure", "VP8Filter_RD4", 0); _static_1(A, "vp8_filter_VP8Filter_LD4$closure", "VP8Filter_LD4", 0); _static_1(A, "vp8_filter_VP8Filter_VR4$closure", "VP8Filter_VR4", 0); _static_1(A, "vp8_filter_VP8Filter_VL4$closure", "VP8Filter_VL4", 0); _static_1(A, "vp8_filter_VP8Filter_HU4$closure", "VP8Filter_HU4", 0); _static_1(A, "vp8_filter_VP8Filter_HD4$closure", "VP8Filter_HD4", 0); _static_1(A, "vp8_filter_VP8Filter_VE16$closure", "VP8Filter_VE16", 0); _static_1(A, "vp8_filter_VP8Filter_HE16$closure", "VP8Filter_HE16", 0); _static_1(A, "vp8_filter_VP8Filter_DC16$closure", "VP8Filter_DC16", 0); _static_1(A, "vp8_filter_VP8Filter_DC16NoTop$closure", "VP8Filter_DC16NoTop", 0); _static_1(A, "vp8_filter_VP8Filter_DC16NoLeft$closure", "VP8Filter_DC16NoLeft", 0); _static_1(A, "vp8_filter_VP8Filter_DC16NoTopLeft$closure", "VP8Filter_DC16NoTopLeft", 0); _static_1(A, "vp8_filter_VP8Filter_VE8uv$closure", "VP8Filter_VE8uv", 0); _static_1(A, "vp8_filter_VP8Filter_HE8uv$closure", "VP8Filter_HE8uv", 0); _static_1(A, "vp8_filter_VP8Filter_DC8uv$closure", "VP8Filter_DC8uv", 0); _static_1(A, "vp8_filter_VP8Filter_DC8uvNoLeft$closure", "VP8Filter_DC8uvNoLeft", 0); _static_1(A, "vp8_filter_VP8Filter_DC8uvNoTop$closure", "VP8Filter_DC8uvNoTop", 0); _static_1(A, "vp8_filter_VP8Filter_DC8uvNoTopLeft$closure", "VP8Filter_DC8uvNoTopLeft", 0); _instance_1_u(A.VP8L.prototype, "get$_processRows", "_processRows$1", 7); _instance_1_u(A.InternalVP8L.prototype, "get$extractAlphaRows", "extractAlphaRows$1", 7); _static(A, "vp8l_transform_VP8LTransform__predictor0$closure", 3, null, ["call$3"], ["VP8LTransform__predictor0"], 1, 0); _static(A, "vp8l_transform_VP8LTransform__predictor1$closure", 3, null, ["call$3"], ["VP8LTransform__predictor1"], 1, 0); _static(A, "vp8l_transform_VP8LTransform__predictor2$closure", 3, null, ["call$3"], ["VP8LTransform__predictor2"], 1, 0); _static(A, "vp8l_transform_VP8LTransform__predictor3$closure", 3, null, ["call$3"], ["VP8LTransform__predictor3"], 1, 0); _static(A, "vp8l_transform_VP8LTransform__predictor4$closure", 3, null, ["call$3"], ["VP8LTransform__predictor4"], 1, 0); _static(A, "vp8l_transform_VP8LTransform__predictor5$closure", 3, null, ["call$3"], ["VP8LTransform__predictor5"], 1, 0); _static(A, "vp8l_transform_VP8LTransform__predictor6$closure", 3, null, ["call$3"], ["VP8LTransform__predictor6"], 1, 0); _static(A, "vp8l_transform_VP8LTransform__predictor7$closure", 3, null, ["call$3"], ["VP8LTransform__predictor7"], 1, 0); _static(A, "vp8l_transform_VP8LTransform__predictor8$closure", 3, null, ["call$3"], ["VP8LTransform__predictor8"], 1, 0); _static(A, "vp8l_transform_VP8LTransform__predictor9$closure", 3, null, ["call$3"], ["VP8LTransform__predictor9"], 1, 0); _static(A, "vp8l_transform_VP8LTransform__predictor10$closure", 3, null, ["call$3"], ["VP8LTransform__predictor10"], 1, 0); _static(A, "vp8l_transform_VP8LTransform__predictor11$closure", 3, null, ["call$3"], ["VP8LTransform__predictor11"], 1, 0); _static(A, "vp8l_transform_VP8LTransform__predictor12$closure", 3, null, ["call$3"], ["VP8LTransform__predictor12"], 1, 0); _static(A, "vp8l_transform_VP8LTransform__predictor13$closure", 3, null, ["call$3"], ["VP8LTransform__predictor13"], 1, 0); _static(A, "web_worker___replyError$closure", 3, null, ["call$3"], ["_replyError"], 52, 0); _static(A, "math__max$closure", 2, null, ["call$1$2", "call$2"], ["max", function(a, b) { return A.max(a, b, type$.num); }], 39, 1); _static(A, "webp_filters_WebPFilters_horizontalUnfilter$closure", 6, null, ["call$6"], ["WebPFilters_horizontalUnfilter"], 9, 0); _static(A, "webp_filters_WebPFilters_verticalUnfilter$closure", 6, null, ["call$6"], ["WebPFilters_verticalUnfilter"], 9, 0); _static(A, "webp_filters_WebPFilters_gradientUnfilter$closure", 6, null, ["call$6"], ["WebPFilters_gradientUnfilter"], 9, 0); })(); (function inheritance() { var _mixin = hunkHelpers.mixin, _mixinHard = hunkHelpers.mixinHard, _inherit = hunkHelpers.inherit, _inheritMany = hunkHelpers.inheritMany; _inherit(A.Object, null); _inheritMany(A.Object, [A.JS_CONST, J.Interceptor, J.ArrayIterator, A.Error, A._ListBase_Object_ListMixin, A.SentinelValue, A.Iterable, A.ListIterator, A.Iterator, A.EmptyIterator, A.WhereTypeIterator, A.FixedLengthListMixin, A.UnmodifiableListMixin, A.Symbol, A.MapView, A.ConstantMap, A.Closure, A.JSInvocationMirror, A.TypeErrorDecoder, A.NullThrownFromJavaScriptException, A.ExceptionAndStackTrace, A._StackTrace, A._Required, A.MapMixin, A.LinkedHashMapCell, A.LinkedHashMapKeyIterator, A._Cell, A.Rti, A._FunctionParameters, A._Type, A._TimerImpl, A._AsyncAwaitCompleter, A._IterationMarker, A._SyncStarIterator, A.AsyncError, A._Completer, A._FutureListener, A._Future, A._AsyncCallbackEntry, A.StreamTransformerBase, A._StreamIterator, A._Zone, A._HashMapKeyIterator, A.ListMixin, A._UnmodifiableMapMixin, A.Codec, A._JsonStringifier, A._JsonPrettyPrintMixin, A._Utf8Decoder, A.DateTime, A._Enum, A.OutOfMemoryError, A.StackOverflowError, A._Exception, A.FormatException, A.MapEntry, A.Null, A._StringStackTrace, A.StringBuffer, A.CssStyleDeclarationBase, A.ImmutableListMixin, A.FixedSizeListIterator, A._DOMWindowCrossFrame, A._AcceptStructuredClone, A.JsObject, A.NullRejectionException, A.InputStreamBase, A.OutputStreamBase, A.ZLibDecoderBase, A.Deflate, A._DeflaterConfig, A._HuffmanTree, A._StaticTree, A.HuffmanTable, A.Inflate, A.ZLibDecoder, A.ZLibEncoder, A.BlurHash, A.BlurHashEncodeException, A.ColorTriplet, A.ExifData, A.BitmapFileHeader, A.DecodeInfo, A.Decoder, A.Encoder, A.ExrAttribute, A.ExrCompressor, A.ExrChannel, A.ExrHufDec, A.ExrPart, A._PizChannelData, A.GifColorMap, A.GifImageDesc, A.IcoInfoImage, A.ComponentData, A.JpegAdobe, A.JpegComponent, A.JpegData, A._JpegHuffman, A.JpegFrame, A.JpegJfif, A.JpegScan, A.PngFrame, A.PsdEffect, A.PsdLayerData, A.PsdBlendingRanges, A.PsdChannel, A.PsdImageResource, A.PsdLayer, A.TiffBitReader, A.TiffEntry, A.TiffFaxDecoder, A.TiffImage, A.LzwDecoder, A.VP8, A.VP8BitReader, A.VP8Filter, A.VP8FrameHeader, A.VP8PictureHeader, A.VP8SegmentHeader, A.VP8BandProbas, A.VP8Proba, A.VP8FilterHeader, A.VP8FInfo, A.VP8MB, A.VP8QuantMatrix, A.VP8MBData, A.VP8TopSamples, A.VP8L, A.VP8LBitReader, A.VP8LColorCache, A.VP8LTransform, A.WebPAlpha, A.WebPFrame, A.HuffmanTree, A.HTreeGroup, A.HdrImage, A.HdrSlice, A.ICCProfileData, A.Image, A.ImageException, A.InputBuffer, A.Quantizer, A.OutputBuffer, A._DbInboundGroupSessionBundle, A.GenerateUploadKeysArgs, A.SessionKey, A.StoredInboundGroupSession, A.MatrixImageFileResizedResponse, A.MatrixImageFileResizeArguments, A.WebWorkerData, A.KeyBackupData, A.RoomKeyBackup, A.RoomKeys, A.Logs, A.LogEvent]); _inheritMany(J.Interceptor, [J.JSBool, J.JSNull, J.JavaScriptObject, J.JSArray, J.JSNumber, J.JSString, A.NativeTypedData]); _inheritMany(J.JavaScriptObject, [J.LegacyJavaScriptObject, A.EventTarget, A.AccessibleNodeList, A.Blob, A.CssTransformComponent, A.CssRule, A._CssStyleDeclaration_JavaScriptObject_CssStyleDeclarationBase, A.CssStyleValue, A.DataTransferItemList, A.DomException, A._DomRectList_JavaScriptObject_ListMixin, A.DomRectReadOnly, A._DomStringList_JavaScriptObject_ListMixin, A.DomTokenList, A.Event, A._FileList_JavaScriptObject_ListMixin, A.Gamepad, A.History, A._HtmlCollection_JavaScriptObject_ListMixin, A.ImageData, A.Location, A.MediaList, A._MidiInputMap_JavaScriptObject_MapMixin, A._MidiOutputMap_JavaScriptObject_MapMixin, A.MimeType, A._MimeTypeArray_JavaScriptObject_ListMixin, A._NodeList_JavaScriptObject_ListMixin, A.Plugin, A._PluginArray_JavaScriptObject_ListMixin, A._RtcStatsReport_JavaScriptObject_MapMixin, A.SpeechGrammar, A._SpeechGrammarList_JavaScriptObject_ListMixin, A.SpeechRecognitionResult, A._Storage_JavaScriptObject_MapMixin, A.StyleSheet, A._TextTrackCueList_JavaScriptObject_ListMixin, A.TimeRanges, A.Touch, A._TouchList_JavaScriptObject_ListMixin, A.TrackDefaultList, A.Url, A.__CssRuleList_JavaScriptObject_ListMixin, A.__GamepadList_JavaScriptObject_ListMixin, A.__NamedNodeMap_JavaScriptObject_ListMixin, A.__SpeechRecognitionResultList_JavaScriptObject_ListMixin, A.__StyleSheetList_JavaScriptObject_ListMixin, A.KeyRange, A.Length, A._LengthList_JavaScriptObject_ListMixin, A.Number, A._NumberList_JavaScriptObject_ListMixin, A.PointList, A._StringList_JavaScriptObject_ListMixin, A.Transform, A._TransformList_JavaScriptObject_ListMixin, A.AudioBuffer, A._AudioParamMap_JavaScriptObject_MapMixin]); _inheritMany(J.LegacyJavaScriptObject, [J.PlainJavaScriptObject, J.UnknownJavaScriptObject, J.JavaScriptFunction, A.Pbkdf2Params, A.AesCtrParams, A.EncryptResult, A.DecryptResult, A.Account, A.Session, A.Utility, A.InboundGroupSession, A.OutboundGroupSession, A.SAS, A.PkEncryptResult, A.PkEncryption, A.PkDecryption, A.PkSigning]); _inherit(J.JSUnmodifiableArray, J.JSArray); _inheritMany(J.JSNumber, [J.JSInt, J.JSNumNotInt]); _inheritMany(A.Error, [A.LateError, A.TypeError, A.JsNoSuchMethodError, A.UnknownJsTypeError, A.RuntimeError, A.AssertionError, A._Error, A.JsonUnsupportedObjectError, A.NullThrownError, A.ArgumentError, A.NoSuchMethodError, A.UnsupportedError, A.UnimplementedError, A.StateError, A.ConcurrentModificationError, A.CyclicInitializationError]); _inherit(A.ListBase, A._ListBase_Object_ListMixin); _inherit(A.UnmodifiableListBase, A.ListBase); _inherit(A.CodeUnits, A.UnmodifiableListBase); _inheritMany(A.Iterable, [A.EfficientLengthIterable, A.MappedIterable, A.WhereTypeIterable, A._ConstantMapKeyIterable, A.IterableBase]); _inheritMany(A.EfficientLengthIterable, [A.ListIterable, A.EmptyIterable, A.LinkedHashMapKeyIterable, A._HashMapKeyIterable]); _inheritMany(A.ListIterable, [A.SubListIterable, A.MappedListIterable, A._JsonMapKeyIterable, A._GeneratorIterable]); _inherit(A.EfficientLengthMappedIterable, A.MappedIterable); _inherit(A.MappedIterator, A.Iterator); _inherit(A._UnmodifiableMapView_MapView__UnmodifiableMapMixin, A.MapView); _inherit(A.UnmodifiableMapView, A._UnmodifiableMapView_MapView__UnmodifiableMapMixin); _inherit(A.ConstantMapView, A.UnmodifiableMapView); _inheritMany(A.ConstantMap, [A.ConstantStringMap, A.GeneralConstantMap]); _inheritMany(A.Closure, [A.GeneralConstantMap__typeTest_closure, A.Instantiation, A.Closure2Args, A.Closure0Args, A.TearOffClosure, A.JsLinkedHashMap_values_closure, A.initHooks_closure, A.initHooks_closure1, A._AsyncRun__initializeScheduleImmediate_internalCallback, A._AsyncRun__initializeScheduleImmediate_closure, A._awaitOnObject_closure, A._Future__chainForeignFuture_closure, A._Future__propagateToListeners_handleWhenCompleteCallback_closure, A._LinkedCustomHashMap_closure, A.MapMixin_entries_closure, A._convertToJS_closure, A._convertToJS_closure0, A._wrapToDart_closure, A._wrapToDart_closure0, A._wrapToDart_closure1, A._convertDataTree__convert, A.promiseToFuture_closure, A.promiseToFuture_closure0, A.BmpInfo_readPalette_closure, A.BmpDecoder_decodeFrame_closure, A.ExrPart_closure, A.IcoInfo__read_closure, A.JpegData__readSOS_closure, A.PngDecoder_decodeFrame_closure, A.Image_getPixelLinear__linear, A.Image_getPixelCubic__cubic, A.GenerateUploadKeysArgs_GenerateUploadKeysArgs$fromJson_closure, A.GenerateUploadKeysArgs_toJson_closure, A.startWebWorker_closure, A.FilterMap_filterMap_closure]); _inherit(A.Instantiation1, A.Instantiation); _inheritMany(A.Closure2Args, [A.Primitives_functionNoSuchMethod_closure, A.initHooks_closure0, A._awaitOnObject_closure0, A._wrapJsFunctionForAsync_closure, A._Future__chainForeignFuture_closure0, A.LinkedHashMap_LinkedHashMap$from_closure, A.MapBase_mapToString_closure, A._JsonStringifier_writeMap_closure, A._JsonPrettyPrintMixin_writeMap_closure, A.NoSuchMethodError_toString_closure, A.MidiInputMap_keys_closure, A.MidiOutputMap_keys_closure, A.RtcStatsReport_keys_closure, A.Storage_keys_closure, A._AcceptStructuredClone_walk_closure, A.AudioParamMap_keys_closure, A.VP8__upsample_LOAD_UV, A.hdrToImage__knee, A.hdrToImage__gamma, A.SessionKey$fromDb_closure, A.SessionKey$fromDb_closure0, A.SessionKey$fromDb_closure1, A.SessionKey$fromDb_closure2, A.RoomKeyBackup_toJson_closure, A.RoomKeys_toJson_closure, A.FilterMap_catchMap_closure]); _inherit(A.NullError, A.TypeError); _inheritMany(A.TearOffClosure, [A.StaticClosure, A.BoundClosure]); _inherit(A._AssertionError, A.AssertionError); _inherit(A.MapBase, A.MapMixin); _inheritMany(A.MapBase, [A.JsLinkedHashMap, A._HashMap, A._JsonMap]); _inherit(A.NativeTypedArray, A.NativeTypedData); _inheritMany(A.NativeTypedArray, [A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin, A._NativeTypedArrayOfInt_NativeTypedArray_ListMixin]); _inherit(A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin_FixedLengthListMixin, A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin); _inherit(A.NativeTypedArrayOfDouble, A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin_FixedLengthListMixin); _inherit(A._NativeTypedArrayOfInt_NativeTypedArray_ListMixin_FixedLengthListMixin, A._NativeTypedArrayOfInt_NativeTypedArray_ListMixin); _inherit(A.NativeTypedArrayOfInt, A._NativeTypedArrayOfInt_NativeTypedArray_ListMixin_FixedLengthListMixin); _inheritMany(A.NativeTypedArrayOfDouble, [A.NativeFloat32List, A.NativeFloat64List]); _inheritMany(A.NativeTypedArrayOfInt, [A.NativeInt16List, A.NativeInt32List, A.NativeInt8List, A.NativeUint16List, A.NativeUint32List, A.NativeUint8ClampedList, A.NativeUint8List]); _inherit(A._TypeError, A._Error); _inheritMany(A.Closure0Args, [A._AsyncRun__scheduleImmediateJsOverride_internalCallback, A._AsyncRun__scheduleImmediateWithSetImmediate_internalCallback, A._TimerImpl_internalCallback, A._Future__addListener_closure, A._Future__prependListeners_closure, A._Future__chainForeignFuture_closure1, A._Future__asyncCompleteWithValue_closure, A._Future__chainFuture_closure, A._Future__asyncCompleteError_closure, A._Future__propagateToListeners_handleWhenCompleteCallback, A._Future__propagateToListeners_handleValueCallback, A._Future__propagateToListeners_handleError, A._rootHandleError_closure, A._RootZone_bindCallbackGuarded_closure, A.Utf8Decoder__decoder_closure, A.Utf8Decoder__decoderNonfatal_closure, A.GifEncoder__encodeLZW__nextPixel]); _inherit(A._SyncStarIterable, A.IterableBase); _inherit(A._AsyncCompleter, A._Completer); _inherit(A._RootZone, A._Zone); _inherit(A._IdentityHashMap, A._HashMap); _inherit(A._LinkedCustomHashMap, A.JsLinkedHashMap); _inherit(A.Converter, A.StreamTransformerBase); _inheritMany(A.Converter, [A._UnicodeSubsetEncoder, A._UnicodeSubsetDecoder, A.JsonEncoder, A.JsonDecoder, A.Utf8Decoder]); _inheritMany(A.Codec, [A.Encoding, A.JsonCodec]); _inherit(A.JsonCyclicError, A.JsonUnsupportedObjectError); _inherit(A._JsonStringStringifier, A._JsonStringifier); _inherit(A.__JsonStringStringifierPretty__JsonStringStringifier__JsonPrettyPrintMixin, A._JsonStringStringifier); _inherit(A._JsonStringStringifierPretty, A.__JsonStringStringifierPretty__JsonStringStringifier__JsonPrettyPrintMixin); _inherit(A.Latin1Codec, A.Encoding); _inherit(A.Latin1Encoder, A._UnicodeSubsetEncoder); _inherit(A.Latin1Decoder, A._UnicodeSubsetDecoder); _inheritMany(A.ArgumentError, [A.RangeError, A.IndexError]); _inheritMany(A.EventTarget, [A.Node, A.FileWriter, A.SourceBuffer, A._SourceBufferList_EventTarget_ListMixin, A.TextTrack, A.TextTrackCue, A._TextTrackList_EventTarget_ListMixin, A.VideoTrackList, A.Window, A.WorkerGlobalScope, A.Request, A.AudioTrackList, A.BaseAudioContext]); _inheritMany(A.Node, [A.Element, A.CharacterData]); _inherit(A.HtmlElement, A.Element); _inheritMany(A.HtmlElement, [A.AnchorElement, A.AreaElement, A.FormElement, A.SelectElement]); _inherit(A.CssPerspective, A.CssTransformComponent); _inherit(A.CssStyleDeclaration, A._CssStyleDeclaration_JavaScriptObject_CssStyleDeclarationBase); _inheritMany(A.CssStyleValue, [A.CssTransformValue, A.CssUnparsedValue]); _inherit(A._DomRectList_JavaScriptObject_ListMixin_ImmutableListMixin, A._DomRectList_JavaScriptObject_ListMixin); _inherit(A.DomRectList, A._DomRectList_JavaScriptObject_ListMixin_ImmutableListMixin); _inherit(A._DomStringList_JavaScriptObject_ListMixin_ImmutableListMixin, A._DomStringList_JavaScriptObject_ListMixin); _inherit(A.DomStringList, A._DomStringList_JavaScriptObject_ListMixin_ImmutableListMixin); _inherit(A.File, A.Blob); _inherit(A._FileList_JavaScriptObject_ListMixin_ImmutableListMixin, A._FileList_JavaScriptObject_ListMixin); _inherit(A.FileList, A._FileList_JavaScriptObject_ListMixin_ImmutableListMixin); _inherit(A._HtmlCollection_JavaScriptObject_ListMixin_ImmutableListMixin, A._HtmlCollection_JavaScriptObject_ListMixin); _inherit(A.HtmlCollection, A._HtmlCollection_JavaScriptObject_ListMixin_ImmutableListMixin); _inheritMany(A.Event, [A.MessageEvent, A.VersionChangeEvent]); _inherit(A.MidiInputMap, A._MidiInputMap_JavaScriptObject_MapMixin); _inherit(A.MidiOutputMap, A._MidiOutputMap_JavaScriptObject_MapMixin); _inherit(A._MimeTypeArray_JavaScriptObject_ListMixin_ImmutableListMixin, A._MimeTypeArray_JavaScriptObject_ListMixin); _inherit(A.MimeTypeArray, A._MimeTypeArray_JavaScriptObject_ListMixin_ImmutableListMixin); _inherit(A._NodeList_JavaScriptObject_ListMixin_ImmutableListMixin, A._NodeList_JavaScriptObject_ListMixin); _inherit(A.NodeList, A._NodeList_JavaScriptObject_ListMixin_ImmutableListMixin); _inherit(A._PluginArray_JavaScriptObject_ListMixin_ImmutableListMixin, A._PluginArray_JavaScriptObject_ListMixin); _inherit(A.PluginArray, A._PluginArray_JavaScriptObject_ListMixin_ImmutableListMixin); _inherit(A.RtcStatsReport, A._RtcStatsReport_JavaScriptObject_MapMixin); _inherit(A._SourceBufferList_EventTarget_ListMixin_ImmutableListMixin, A._SourceBufferList_EventTarget_ListMixin); _inherit(A.SourceBufferList, A._SourceBufferList_EventTarget_ListMixin_ImmutableListMixin); _inherit(A._SpeechGrammarList_JavaScriptObject_ListMixin_ImmutableListMixin, A._SpeechGrammarList_JavaScriptObject_ListMixin); _inherit(A.SpeechGrammarList, A._SpeechGrammarList_JavaScriptObject_ListMixin_ImmutableListMixin); _inherit(A.Storage, A._Storage_JavaScriptObject_MapMixin); _inherit(A._TextTrackCueList_JavaScriptObject_ListMixin_ImmutableListMixin, A._TextTrackCueList_JavaScriptObject_ListMixin); _inherit(A.TextTrackCueList, A._TextTrackCueList_JavaScriptObject_ListMixin_ImmutableListMixin); _inherit(A._TextTrackList_EventTarget_ListMixin_ImmutableListMixin, A._TextTrackList_EventTarget_ListMixin); _inherit(A.TextTrackList, A._TextTrackList_EventTarget_ListMixin_ImmutableListMixin); _inherit(A._TouchList_JavaScriptObject_ListMixin_ImmutableListMixin, A._TouchList_JavaScriptObject_ListMixin); _inherit(A.TouchList, A._TouchList_JavaScriptObject_ListMixin_ImmutableListMixin); _inherit(A.__CssRuleList_JavaScriptObject_ListMixin_ImmutableListMixin, A.__CssRuleList_JavaScriptObject_ListMixin); _inherit(A._CssRuleList, A.__CssRuleList_JavaScriptObject_ListMixin_ImmutableListMixin); _inherit(A._DomRect, A.DomRectReadOnly); _inherit(A.__GamepadList_JavaScriptObject_ListMixin_ImmutableListMixin, A.__GamepadList_JavaScriptObject_ListMixin); _inherit(A._GamepadList, A.__GamepadList_JavaScriptObject_ListMixin_ImmutableListMixin); _inherit(A.__NamedNodeMap_JavaScriptObject_ListMixin_ImmutableListMixin, A.__NamedNodeMap_JavaScriptObject_ListMixin); _inherit(A._NamedNodeMap, A.__NamedNodeMap_JavaScriptObject_ListMixin_ImmutableListMixin); _inherit(A.__SpeechRecognitionResultList_JavaScriptObject_ListMixin_ImmutableListMixin, A.__SpeechRecognitionResultList_JavaScriptObject_ListMixin); _inherit(A._SpeechRecognitionResultList, A.__SpeechRecognitionResultList_JavaScriptObject_ListMixin_ImmutableListMixin); _inherit(A.__StyleSheetList_JavaScriptObject_ListMixin_ImmutableListMixin, A.__StyleSheetList_JavaScriptObject_ListMixin); _inherit(A._StyleSheetList, A.__StyleSheetList_JavaScriptObject_ListMixin_ImmutableListMixin); _inherit(A._AcceptStructuredCloneDart2Js, A._AcceptStructuredClone); _inheritMany(A.JsObject, [A.JsFunction, A._JsArray_JsObject_ListMixin]); _inherit(A.JsArray, A._JsArray_JsObject_ListMixin); _inherit(A._LengthList_JavaScriptObject_ListMixin_ImmutableListMixin, A._LengthList_JavaScriptObject_ListMixin); _inherit(A.LengthList, A._LengthList_JavaScriptObject_ListMixin_ImmutableListMixin); _inherit(A._NumberList_JavaScriptObject_ListMixin_ImmutableListMixin, A._NumberList_JavaScriptObject_ListMixin); _inherit(A.NumberList, A._NumberList_JavaScriptObject_ListMixin_ImmutableListMixin); _inherit(A._StringList_JavaScriptObject_ListMixin_ImmutableListMixin, A._StringList_JavaScriptObject_ListMixin); _inherit(A.StringList, A._StringList_JavaScriptObject_ListMixin_ImmutableListMixin); _inherit(A._TransformList_JavaScriptObject_ListMixin_ImmutableListMixin, A._TransformList_JavaScriptObject_ListMixin); _inherit(A.TransformList, A._TransformList_JavaScriptObject_ListMixin_ImmutableListMixin); _inherit(A.AudioParamMap, A._AudioParamMap_JavaScriptObject_MapMixin); _inherit(A.OfflineAudioContext, A.BaseAudioContext); _inherit(A.ArchiveException, A.FormatException); _inherit(A.InputStream, A.InputStreamBase); _inherit(A.OutputStream, A.OutputStreamBase); _inherit(A._ZLibDecoder, A.ZLibDecoderBase); _inheritMany(A._Enum, [A.BitmapCompression, A.ICCPCompression, A.Format, A.Channels, A.BlendMode, A.DisposeMode, A.DitherKernel, A.Interpolation, A.WebWorkerOperations, A.Level]); _inheritMany(A.DecodeInfo, [A.BmpInfo, A.ExrImage, A.GifInfo, A.IcoInfo, A.PngInfo, A.PsdImage, A.TgaInfo, A.TiffInfo, A.WebPInfo]); _inheritMany(A.Decoder, [A.BmpDecoder, A.ExrDecoder, A.GifDecoder, A.IcoDecoder, A.JpegDecoder, A.PngDecoder, A.PsdDecoder, A.TgaDecoder, A.TiffDecoder, A.WebPDecoder]); _inherit(A.DibDecoder, A.BmpDecoder); _inheritMany(A.Encoder, [A.BmpEncoder, A.WinEncoder, A.GifEncoder, A.JpegEncoder, A.PngEncoder, A.TgaEncoder]); _inheritMany(A.WinEncoder, [A.CurEncoder, A.IcoEncoder]); _inherit(A.InternalExrCompressor, A.ExrCompressor); _inheritMany(A.InternalExrCompressor, [A.InternalExrB44Compressor, A.InternalExrPizCompressor, A.InternalExrPxr24Compressor, A.InternalExrRleCompressor, A.InternalExrZipCompressor]); _inherit(A.InternalExrPart, A.ExrPart); _inherit(A.InternalGifImageDesc, A.GifImageDesc); _inherit(A.IcoBmpInfo, A.BmpInfo); _inherit(A.InternalPngFrame, A.PngFrame); _inherit(A.InternalPngInfo, A.PngInfo); _inheritMany(A.PsdEffect, [A.PsdBevelEffect, A.PsdDropShadowEffect, A.PsdInnerGlowEffect, A.PsdInnerShadowEffect, A.PsdOuterGlowEffect, A.PsdSolidFillEffect]); _inheritMany(A.PsdLayerData, [A.PsdLayerAdditionalData, A.PsdLayerSectionDivider]); _inherit(A.InternalVP8L, A.VP8L); _inherit(A.InternalWebPFrame, A.WebPFrame); _inherit(A.InternalWebPInfo, A.WebPInfo); _inherit(A.NeuralQuantizer, A.Quantizer); _mixin(A.UnmodifiableListBase, A.UnmodifiableListMixin); _mixin(A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin, A.ListMixin); _mixin(A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin_FixedLengthListMixin, A.FixedLengthListMixin); _mixin(A._NativeTypedArrayOfInt_NativeTypedArray_ListMixin, A.ListMixin); _mixin(A._NativeTypedArrayOfInt_NativeTypedArray_ListMixin_FixedLengthListMixin, A.FixedLengthListMixin); _mixin(A._ListBase_Object_ListMixin, A.ListMixin); _mixin(A._UnmodifiableMapView_MapView__UnmodifiableMapMixin, A._UnmodifiableMapMixin); _mixin(A.__JsonStringStringifierPretty__JsonStringStringifier__JsonPrettyPrintMixin, A._JsonPrettyPrintMixin); _mixin(A._CssStyleDeclaration_JavaScriptObject_CssStyleDeclarationBase, A.CssStyleDeclarationBase); _mixin(A._DomRectList_JavaScriptObject_ListMixin, A.ListMixin); _mixin(A._DomRectList_JavaScriptObject_ListMixin_ImmutableListMixin, A.ImmutableListMixin); _mixin(A._DomStringList_JavaScriptObject_ListMixin, A.ListMixin); _mixin(A._DomStringList_JavaScriptObject_ListMixin_ImmutableListMixin, A.ImmutableListMixin); _mixin(A._FileList_JavaScriptObject_ListMixin, A.ListMixin); _mixin(A._FileList_JavaScriptObject_ListMixin_ImmutableListMixin, A.ImmutableListMixin); _mixin(A._HtmlCollection_JavaScriptObject_ListMixin, A.ListMixin); _mixin(A._HtmlCollection_JavaScriptObject_ListMixin_ImmutableListMixin, A.ImmutableListMixin); _mixin(A._MidiInputMap_JavaScriptObject_MapMixin, A.MapMixin); _mixin(A._MidiOutputMap_JavaScriptObject_MapMixin, A.MapMixin); _mixin(A._MimeTypeArray_JavaScriptObject_ListMixin, A.ListMixin); _mixin(A._MimeTypeArray_JavaScriptObject_ListMixin_ImmutableListMixin, A.ImmutableListMixin); _mixin(A._NodeList_JavaScriptObject_ListMixin, A.ListMixin); _mixin(A._NodeList_JavaScriptObject_ListMixin_ImmutableListMixin, A.ImmutableListMixin); _mixin(A._PluginArray_JavaScriptObject_ListMixin, A.ListMixin); _mixin(A._PluginArray_JavaScriptObject_ListMixin_ImmutableListMixin, A.ImmutableListMixin); _mixin(A._RtcStatsReport_JavaScriptObject_MapMixin, A.MapMixin); _mixin(A._SourceBufferList_EventTarget_ListMixin, A.ListMixin); _mixin(A._SourceBufferList_EventTarget_ListMixin_ImmutableListMixin, A.ImmutableListMixin); _mixin(A._SpeechGrammarList_JavaScriptObject_ListMixin, A.ListMixin); _mixin(A._SpeechGrammarList_JavaScriptObject_ListMixin_ImmutableListMixin, A.ImmutableListMixin); _mixin(A._Storage_JavaScriptObject_MapMixin, A.MapMixin); _mixin(A._TextTrackCueList_JavaScriptObject_ListMixin, A.ListMixin); _mixin(A._TextTrackCueList_JavaScriptObject_ListMixin_ImmutableListMixin, A.ImmutableListMixin); _mixin(A._TextTrackList_EventTarget_ListMixin, A.ListMixin); _mixin(A._TextTrackList_EventTarget_ListMixin_ImmutableListMixin, A.ImmutableListMixin); _mixin(A._TouchList_JavaScriptObject_ListMixin, A.ListMixin); _mixin(A._TouchList_JavaScriptObject_ListMixin_ImmutableListMixin, A.ImmutableListMixin); _mixin(A.__CssRuleList_JavaScriptObject_ListMixin, A.ListMixin); _mixin(A.__CssRuleList_JavaScriptObject_ListMixin_ImmutableListMixin, A.ImmutableListMixin); _mixin(A.__GamepadList_JavaScriptObject_ListMixin, A.ListMixin); _mixin(A.__GamepadList_JavaScriptObject_ListMixin_ImmutableListMixin, A.ImmutableListMixin); _mixin(A.__NamedNodeMap_JavaScriptObject_ListMixin, A.ListMixin); _mixin(A.__NamedNodeMap_JavaScriptObject_ListMixin_ImmutableListMixin, A.ImmutableListMixin); _mixin(A.__SpeechRecognitionResultList_JavaScriptObject_ListMixin, A.ListMixin); _mixin(A.__SpeechRecognitionResultList_JavaScriptObject_ListMixin_ImmutableListMixin, A.ImmutableListMixin); _mixin(A.__StyleSheetList_JavaScriptObject_ListMixin, A.ListMixin); _mixin(A.__StyleSheetList_JavaScriptObject_ListMixin_ImmutableListMixin, A.ImmutableListMixin); _mixinHard(A._JsArray_JsObject_ListMixin, A.ListMixin); _mixin(A._LengthList_JavaScriptObject_ListMixin, A.ListMixin); _mixin(A._LengthList_JavaScriptObject_ListMixin_ImmutableListMixin, A.ImmutableListMixin); _mixin(A._NumberList_JavaScriptObject_ListMixin, A.ListMixin); _mixin(A._NumberList_JavaScriptObject_ListMixin_ImmutableListMixin, A.ImmutableListMixin); _mixin(A._StringList_JavaScriptObject_ListMixin, A.ListMixin); _mixin(A._StringList_JavaScriptObject_ListMixin_ImmutableListMixin, A.ImmutableListMixin); _mixin(A._TransformList_JavaScriptObject_ListMixin, A.ListMixin); _mixin(A._TransformList_JavaScriptObject_ListMixin_ImmutableListMixin, A.ImmutableListMixin); _mixin(A._AudioParamMap_JavaScriptObject_MapMixin, A.MapMixin); })(); var init = { typeUniverse: {eC: new Map(), tR: {}, eT: {}, tPV: {}, sEA: []}, mangledGlobalNames: {int: "int", double: "double", num: "num", String: "String", bool: "bool", Null: "Null", List: "List"}, mangledNames: {}, types: ["~(InputBuffer)", "int(Uint32List,int,int)", "~()", "~(String,@)", "@(@)", "~(@)", "~(Object?,Object?)", "~(int)", "~(JpegComponent,List<@>)", "~(int,int,int,int,int,Uint8List)", "~(~())", "int(Object?)", "~(JpegComponent,List)", "Null(@)", "@()", "Null()", "num(num,num)", "MapEntry(String,@)", "int(int)", "bool(Object?)", "@(@,@)", "JsFunction(@)", "JsArray<@>(@)", "JsObject(@)", "Object?(Object?)", "Null(Object,StackTrace)", "Null(~())", "~(Symbol0,@)", "int()", "IcoInfoImage(int)", "JpegComponent(int)", "~(@,@)", "bool(@)", "int(int,int)", "_Future<@>(@)", "int(int,int,int,int)", "@(@,String)", "_DbInboundGroupSessionBundle(@)", "Map(_DbInboundGroupSessionBundle)", "0^(0^,0^)", "MapEntry>(String,@)", "MapEntry(@,@)", "Future(MessageEvent)", "MapEntry>(String,KeyBackupData)", "MapEntry>(String,RoomKeyBackup)", "num(num,num,num,num,num)", "@(String)", "bool(Object?,Object?)", "Object?(@)", "double(ColorTriplet)", "Null(@,StackTrace)", "~(int,@)", "~(Object?,StackTrace,double)", "~(String,String)", "Uint32List(int)"], interceptorsByTag: null, leafTags: null, arrayRti: Symbol("$ti") }; A._Universe_addRules(init.typeUniverse, JSON.parse('{"PlainJavaScriptObject":"LegacyJavaScriptObject","UnknownJavaScriptObject":"LegacyJavaScriptObject","JavaScriptFunction":"LegacyJavaScriptObject","Pbkdf2Params":"LegacyJavaScriptObject","AesCtrParams":"LegacyJavaScriptObject","EncryptResult":"LegacyJavaScriptObject","DecryptResult":"LegacyJavaScriptObject","Account":"LegacyJavaScriptObject","Session":"LegacyJavaScriptObject","Utility":"LegacyJavaScriptObject","InboundGroupSession":"LegacyJavaScriptObject","OutboundGroupSession":"LegacyJavaScriptObject","SAS":"LegacyJavaScriptObject","PkEncryptResult":"LegacyJavaScriptObject","PkEncryption":"LegacyJavaScriptObject","PkDecryption":"LegacyJavaScriptObject","PkSigning":"LegacyJavaScriptObject","AbortPaymentEvent":"Event","ExtendableEvent":"Event","AudioContext":"BaseAudioContext","AbsoluteOrientationSensor":"EventTarget","OrientationSensor":"EventTarget","Sensor":"EventTarget","AElement":"Element","GraphicsElement":"Element","SvgElement":"Element","OpenDBRequest":"Request","AudioElement":"HtmlElement","MediaElement":"HtmlElement","HtmlDocument":"Node","Document":"Node","VttCue":"TextTrackCue","DedicatedWorkerGlobalScope":"WorkerGlobalScope","CDataSection":"CharacterData","Text":"CharacterData","HtmlFormControlsCollection":"HtmlCollection","CssCharsetRule":"CssRule","CssStyleSheet":"StyleSheet","NativeByteData":"NativeTypedData","JSBool":{"bool":[]},"JSNull":{"Null":[]},"LegacyJavaScriptObject":{"InboundGroupSession":[]},"JSArray":{"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"JSUnmodifiableArray":{"JSArray":["1"],"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"ArrayIterator":{"Iterator":["1"]},"JSNumber":{"double":[],"num":[]},"JSInt":{"double":[],"int":[],"num":[]},"JSNumNotInt":{"double":[],"num":[]},"JSString":{"String":[]},"LateError":{"Error":[]},"CodeUnits":{"ListMixin":["int"],"UnmodifiableListMixin":["int"],"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"ListMixin.E":"int","UnmodifiableListMixin.E":"int"},"EfficientLengthIterable":{"Iterable":["1"]},"ListIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"]},"SubListIterable":{"ListIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1","ListIterable.E":"1"},"ListIterator":{"Iterator":["1"]},"MappedIterable":{"Iterable":["2"],"Iterable.E":"2"},"EfficientLengthMappedIterable":{"MappedIterable":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"Iterable.E":"2"},"MappedIterator":{"Iterator":["2"]},"MappedListIterable":{"ListIterable":["2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"Iterable.E":"2","ListIterable.E":"2"},"EmptyIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"EmptyIterator":{"Iterator":["1"]},"WhereTypeIterable":{"Iterable":["1"],"Iterable.E":"1"},"WhereTypeIterator":{"Iterator":["1"]},"UnmodifiableListBase":{"ListMixin":["1"],"UnmodifiableListMixin":["1"],"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"Symbol":{"Symbol0":[]},"ConstantMapView":{"UnmodifiableMapView":["1","2"],"_UnmodifiableMapView_MapView__UnmodifiableMapMixin":["1","2"],"MapView":["1","2"],"_UnmodifiableMapMixin":["1","2"],"Map":["1","2"],"_UnmodifiableMapMixin.K":"1","_UnmodifiableMapMixin.V":"2"},"ConstantMap":{"Map":["1","2"]},"ConstantStringMap":{"ConstantMap":["1","2"],"Map":["1","2"]},"_ConstantMapKeyIterable":{"Iterable":["1"],"Iterable.E":"1"},"GeneralConstantMap":{"ConstantMap":["1","2"],"Map":["1","2"]},"Instantiation":{"Closure":[],"Function":[]},"Instantiation1":{"Closure":[],"Function":[]},"JSInvocationMirror":{"Invocation":[]},"NullError":{"TypeError":[],"Error":[]},"JsNoSuchMethodError":{"Error":[]},"UnknownJsTypeError":{"Error":[]},"_StackTrace":{"StackTrace":[]},"Closure":{"Function":[]},"Closure0Args":{"Closure":[],"Function":[]},"Closure2Args":{"Closure":[],"Function":[]},"TearOffClosure":{"Closure":[],"Function":[]},"StaticClosure":{"Closure":[],"Function":[]},"BoundClosure":{"Closure":[],"Function":[]},"RuntimeError":{"Error":[]},"_AssertionError":{"Error":[]},"JsLinkedHashMap":{"MapMixin":["1","2"],"LinkedHashMap":["1","2"],"Map":["1","2"],"MapMixin.K":"1","MapMixin.V":"2"},"LinkedHashMapKeyIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"LinkedHashMapKeyIterator":{"Iterator":["1"]},"NativeTypedData":{"TypedData":[]},"NativeTypedArray":{"JavaScriptIndexingBehavior":["1"],"TypedData":[]},"NativeTypedArrayOfDouble":{"NativeTypedArray":["double"],"ListMixin":["double"],"JavaScriptIndexingBehavior":["double"],"List":["double"],"EfficientLengthIterable":["double"],"TypedData":[],"Iterable":["double"],"FixedLengthListMixin":["double"]},"NativeTypedArrayOfInt":{"NativeTypedArray":["int"],"ListMixin":["int"],"JavaScriptIndexingBehavior":["int"],"List":["int"],"EfficientLengthIterable":["int"],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"]},"NativeFloat32List":{"NativeTypedArrayOfDouble":[],"NativeTypedArray":["double"],"ListMixin":["double"],"Float32List":[],"JavaScriptIndexingBehavior":["double"],"List":["double"],"EfficientLengthIterable":["double"],"TypedData":[],"Iterable":["double"],"FixedLengthListMixin":["double"],"ListMixin.E":"double"},"NativeFloat64List":{"NativeTypedArrayOfDouble":[],"NativeTypedArray":["double"],"ListMixin":["double"],"JavaScriptIndexingBehavior":["double"],"List":["double"],"EfficientLengthIterable":["double"],"TypedData":[],"Iterable":["double"],"FixedLengthListMixin":["double"],"ListMixin.E":"double"},"NativeInt16List":{"NativeTypedArrayOfInt":[],"NativeTypedArray":["int"],"ListMixin":["int"],"Int16List":[],"JavaScriptIndexingBehavior":["int"],"List":["int"],"EfficientLengthIterable":["int"],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"NativeInt32List":{"NativeTypedArrayOfInt":[],"NativeTypedArray":["int"],"ListMixin":["int"],"Int32List":[],"JavaScriptIndexingBehavior":["int"],"List":["int"],"EfficientLengthIterable":["int"],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"NativeInt8List":{"NativeTypedArrayOfInt":[],"NativeTypedArray":["int"],"ListMixin":["int"],"Int8List":[],"JavaScriptIndexingBehavior":["int"],"List":["int"],"EfficientLengthIterable":["int"],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"NativeUint16List":{"NativeTypedArrayOfInt":[],"NativeTypedArray":["int"],"ListMixin":["int"],"Uint16List":[],"JavaScriptIndexingBehavior":["int"],"List":["int"],"EfficientLengthIterable":["int"],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"NativeUint32List":{"NativeTypedArrayOfInt":[],"NativeTypedArray":["int"],"ListMixin":["int"],"Uint32List":[],"JavaScriptIndexingBehavior":["int"],"List":["int"],"EfficientLengthIterable":["int"],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"NativeUint8ClampedList":{"NativeTypedArrayOfInt":[],"NativeTypedArray":["int"],"ListMixin":["int"],"JavaScriptIndexingBehavior":["int"],"List":["int"],"EfficientLengthIterable":["int"],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"NativeUint8List":{"NativeTypedArrayOfInt":[],"NativeTypedArray":["int"],"ListMixin":["int"],"Uint8List":[],"JavaScriptIndexingBehavior":["int"],"List":["int"],"EfficientLengthIterable":["int"],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"_Type":{"Type":[]},"_Error":{"Error":[]},"_TypeError":{"TypeError":[],"Error":[]},"_Future":{"Future":["1"]},"_SyncStarIterator":{"Iterator":["1"]},"_SyncStarIterable":{"Iterable":["1"],"Iterable.E":"1"},"AsyncError":{"Error":[]},"_AsyncCompleter":{"_Completer":["1"]},"_Zone":{"Zone":[]},"_RootZone":{"_Zone":[],"Zone":[]},"_HashMap":{"MapMixin":["1","2"],"Map":["1","2"]},"_IdentityHashMap":{"_HashMap":["1","2"],"MapMixin":["1","2"],"Map":["1","2"],"MapMixin.K":"1","MapMixin.V":"2"},"_HashMapKeyIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"_HashMapKeyIterator":{"Iterator":["1"]},"_LinkedCustomHashMap":{"JsLinkedHashMap":["1","2"],"MapMixin":["1","2"],"LinkedHashMap":["1","2"],"Map":["1","2"],"MapMixin.K":"1","MapMixin.V":"2"},"IterableBase":{"Iterable":["1"]},"ListBase":{"ListMixin":["1"],"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"MapBase":{"MapMixin":["1","2"],"Map":["1","2"]},"MapMixin":{"Map":["1","2"]},"MapView":{"Map":["1","2"]},"UnmodifiableMapView":{"_UnmodifiableMapView_MapView__UnmodifiableMapMixin":["1","2"],"MapView":["1","2"],"_UnmodifiableMapMixin":["1","2"],"Map":["1","2"]},"_JsonMap":{"MapMixin":["String","@"],"Map":["String","@"],"MapMixin.K":"String","MapMixin.V":"@"},"_JsonMapKeyIterable":{"ListIterable":["String"],"EfficientLengthIterable":["String"],"Iterable":["String"],"Iterable.E":"String","ListIterable.E":"String"},"_UnicodeSubsetEncoder":{"Converter":["String","List"]},"_UnicodeSubsetDecoder":{"Converter":["List","String"]},"Encoding":{"Codec":["String","List"]},"JsonUnsupportedObjectError":{"Error":[]},"JsonCyclicError":{"Error":[]},"JsonCodec":{"Codec":["Object?","String"]},"JsonEncoder":{"Converter":["Object?","String"]},"JsonDecoder":{"Converter":["String","Object?"]},"Latin1Codec":{"Codec":["String","List"]},"Latin1Encoder":{"Converter":["String","List"]},"Latin1Decoder":{"Converter":["List","String"]},"Utf8Decoder":{"Converter":["List","String"]},"double":{"num":[]},"int":{"num":[]},"List":{"EfficientLengthIterable":["1"],"Iterable":["1"]},"AssertionError":{"Error":[]},"TypeError":{"Error":[]},"NullThrownError":{"Error":[]},"ArgumentError":{"Error":[]},"RangeError":{"Error":[]},"IndexError":{"Error":[]},"NoSuchMethodError":{"Error":[]},"UnsupportedError":{"Error":[]},"UnimplementedError":{"Error":[]},"StateError":{"Error":[]},"ConcurrentModificationError":{"Error":[]},"OutOfMemoryError":{"Error":[]},"StackOverflowError":{"Error":[]},"CyclicInitializationError":{"Error":[]},"_GeneratorIterable":{"ListIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1","ListIterable.E":"1"},"_StringStackTrace":{"StackTrace":[]},"StringBuffer":{"StringSink":[]},"File":{"Blob":[]},"MessageEvent":{"Event":[]},"Node":{"EventTarget":[]},"SourceBuffer":{"EventTarget":[]},"TextTrack":{"EventTarget":[]},"TextTrackCue":{"EventTarget":[]},"HtmlElement":{"Node":[],"EventTarget":[]},"AnchorElement":{"Node":[],"EventTarget":[]},"AreaElement":{"Node":[],"EventTarget":[]},"CharacterData":{"Node":[],"EventTarget":[]},"DomRectList":{"ListMixin":["Rectangle"],"ImmutableListMixin":["Rectangle"],"List":["Rectangle"],"JavaScriptIndexingBehavior":["Rectangle"],"EfficientLengthIterable":["Rectangle"],"Iterable":["Rectangle"],"ImmutableListMixin.E":"Rectangle","ListMixin.E":"Rectangle"},"DomRectReadOnly":{"Rectangle":["num"]},"DomStringList":{"ListMixin":["String"],"ImmutableListMixin":["String"],"List":["String"],"JavaScriptIndexingBehavior":["String"],"EfficientLengthIterable":["String"],"Iterable":["String"],"ImmutableListMixin.E":"String","ListMixin.E":"String"},"Element":{"Node":[],"EventTarget":[]},"FileList":{"ListMixin":["File"],"ImmutableListMixin":["File"],"List":["File"],"JavaScriptIndexingBehavior":["File"],"EfficientLengthIterable":["File"],"Iterable":["File"],"ImmutableListMixin.E":"File","ListMixin.E":"File"},"FileWriter":{"EventTarget":[]},"FormElement":{"Node":[],"EventTarget":[]},"HtmlCollection":{"ListMixin":["Node"],"ImmutableListMixin":["Node"],"List":["Node"],"JavaScriptIndexingBehavior":["Node"],"EfficientLengthIterable":["Node"],"Iterable":["Node"],"ImmutableListMixin.E":"Node","ListMixin.E":"Node"},"MidiInputMap":{"MapMixin":["String","@"],"Map":["String","@"],"MapMixin.K":"String","MapMixin.V":"@"},"MidiOutputMap":{"MapMixin":["String","@"],"Map":["String","@"],"MapMixin.K":"String","MapMixin.V":"@"},"MimeTypeArray":{"ListMixin":["MimeType"],"ImmutableListMixin":["MimeType"],"List":["MimeType"],"JavaScriptIndexingBehavior":["MimeType"],"EfficientLengthIterable":["MimeType"],"Iterable":["MimeType"],"ImmutableListMixin.E":"MimeType","ListMixin.E":"MimeType"},"NodeList":{"ListMixin":["Node"],"ImmutableListMixin":["Node"],"List":["Node"],"JavaScriptIndexingBehavior":["Node"],"EfficientLengthIterable":["Node"],"Iterable":["Node"],"ImmutableListMixin.E":"Node","ListMixin.E":"Node"},"PluginArray":{"ListMixin":["Plugin"],"ImmutableListMixin":["Plugin"],"List":["Plugin"],"JavaScriptIndexingBehavior":["Plugin"],"EfficientLengthIterable":["Plugin"],"Iterable":["Plugin"],"ImmutableListMixin.E":"Plugin","ListMixin.E":"Plugin"},"RtcStatsReport":{"MapMixin":["String","@"],"Map":["String","@"],"MapMixin.K":"String","MapMixin.V":"@"},"SelectElement":{"Node":[],"EventTarget":[]},"SourceBufferList":{"ListMixin":["SourceBuffer"],"ImmutableListMixin":["SourceBuffer"],"EventTarget":[],"List":["SourceBuffer"],"JavaScriptIndexingBehavior":["SourceBuffer"],"EfficientLengthIterable":["SourceBuffer"],"Iterable":["SourceBuffer"],"ImmutableListMixin.E":"SourceBuffer","ListMixin.E":"SourceBuffer"},"SpeechGrammarList":{"ListMixin":["SpeechGrammar"],"ImmutableListMixin":["SpeechGrammar"],"List":["SpeechGrammar"],"JavaScriptIndexingBehavior":["SpeechGrammar"],"EfficientLengthIterable":["SpeechGrammar"],"Iterable":["SpeechGrammar"],"ImmutableListMixin.E":"SpeechGrammar","ListMixin.E":"SpeechGrammar"},"Storage":{"MapMixin":["String","String"],"Map":["String","String"],"MapMixin.K":"String","MapMixin.V":"String"},"TextTrackCueList":{"ListMixin":["TextTrackCue"],"ImmutableListMixin":["TextTrackCue"],"List":["TextTrackCue"],"JavaScriptIndexingBehavior":["TextTrackCue"],"EfficientLengthIterable":["TextTrackCue"],"Iterable":["TextTrackCue"],"ImmutableListMixin.E":"TextTrackCue","ListMixin.E":"TextTrackCue"},"TextTrackList":{"ListMixin":["TextTrack"],"ImmutableListMixin":["TextTrack"],"EventTarget":[],"List":["TextTrack"],"JavaScriptIndexingBehavior":["TextTrack"],"EfficientLengthIterable":["TextTrack"],"Iterable":["TextTrack"],"ImmutableListMixin.E":"TextTrack","ListMixin.E":"TextTrack"},"TouchList":{"ListMixin":["Touch"],"ImmutableListMixin":["Touch"],"List":["Touch"],"JavaScriptIndexingBehavior":["Touch"],"EfficientLengthIterable":["Touch"],"Iterable":["Touch"],"ImmutableListMixin.E":"Touch","ListMixin.E":"Touch"},"VideoTrackList":{"EventTarget":[]},"Window":{"WindowBase":[],"EventTarget":[]},"WorkerGlobalScope":{"EventTarget":[]},"_CssRuleList":{"ListMixin":["CssRule"],"ImmutableListMixin":["CssRule"],"List":["CssRule"],"JavaScriptIndexingBehavior":["CssRule"],"EfficientLengthIterable":["CssRule"],"Iterable":["CssRule"],"ImmutableListMixin.E":"CssRule","ListMixin.E":"CssRule"},"_DomRect":{"Rectangle":["num"]},"_GamepadList":{"ListMixin":["Gamepad?"],"ImmutableListMixin":["Gamepad?"],"List":["Gamepad?"],"JavaScriptIndexingBehavior":["Gamepad?"],"EfficientLengthIterable":["Gamepad?"],"Iterable":["Gamepad?"],"ImmutableListMixin.E":"Gamepad?","ListMixin.E":"Gamepad?"},"_NamedNodeMap":{"ListMixin":["Node"],"ImmutableListMixin":["Node"],"List":["Node"],"JavaScriptIndexingBehavior":["Node"],"EfficientLengthIterable":["Node"],"Iterable":["Node"],"ImmutableListMixin.E":"Node","ListMixin.E":"Node"},"_SpeechRecognitionResultList":{"ListMixin":["SpeechRecognitionResult"],"ImmutableListMixin":["SpeechRecognitionResult"],"List":["SpeechRecognitionResult"],"JavaScriptIndexingBehavior":["SpeechRecognitionResult"],"EfficientLengthIterable":["SpeechRecognitionResult"],"Iterable":["SpeechRecognitionResult"],"ImmutableListMixin.E":"SpeechRecognitionResult","ListMixin.E":"SpeechRecognitionResult"},"_StyleSheetList":{"ListMixin":["StyleSheet"],"ImmutableListMixin":["StyleSheet"],"List":["StyleSheet"],"JavaScriptIndexingBehavior":["StyleSheet"],"EfficientLengthIterable":["StyleSheet"],"Iterable":["StyleSheet"],"ImmutableListMixin.E":"StyleSheet","ListMixin.E":"StyleSheet"},"FixedSizeListIterator":{"Iterator":["1"]},"_DOMWindowCrossFrame":{"WindowBase":[],"EventTarget":[]},"Request":{"EventTarget":[]},"VersionChangeEvent":{"Event":[]},"JsArray":{"ListMixin":["1"],"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListMixin.E":"1"},"LengthList":{"ListMixin":["Length"],"ImmutableListMixin":["Length"],"List":["Length"],"EfficientLengthIterable":["Length"],"Iterable":["Length"],"ImmutableListMixin.E":"Length","ListMixin.E":"Length"},"NumberList":{"ListMixin":["Number"],"ImmutableListMixin":["Number"],"List":["Number"],"EfficientLengthIterable":["Number"],"Iterable":["Number"],"ImmutableListMixin.E":"Number","ListMixin.E":"Number"},"StringList":{"ListMixin":["String"],"ImmutableListMixin":["String"],"List":["String"],"EfficientLengthIterable":["String"],"Iterable":["String"],"ImmutableListMixin.E":"String","ListMixin.E":"String"},"TransformList":{"ListMixin":["Transform"],"ImmutableListMixin":["Transform"],"List":["Transform"],"EfficientLengthIterable":["Transform"],"Iterable":["Transform"],"ImmutableListMixin.E":"Transform","ListMixin.E":"Transform"},"AudioParamMap":{"MapMixin":["String","@"],"Map":["String","@"],"MapMixin.K":"String","MapMixin.V":"@"},"AudioTrackList":{"EventTarget":[]},"BaseAudioContext":{"EventTarget":[]},"OfflineAudioContext":{"EventTarget":[]},"InputStream":{"InputStreamBase":[]},"InternalExrB44Compressor":{"ExrCompressor":[]},"InternalExrCompressor":{"ExrCompressor":[]},"InternalExrPart":{"ExrPart":[]},"InternalExrPizCompressor":{"ExrCompressor":[]},"InternalExrPxr24Compressor":{"ExrCompressor":[]},"InternalExrRleCompressor":{"ExrCompressor":[]},"InternalExrZipCompressor":{"ExrCompressor":[]},"InternalGifImageDesc":{"GifImageDesc":[]},"IcoBmpInfo":{"BmpInfo":[]},"InternalPngFrame":{"PngFrame":[]},"PsdBevelEffect":{"PsdEffect":[]},"PsdDropShadowEffect":{"PsdEffect":[]},"PsdInnerGlowEffect":{"PsdEffect":[]},"PsdInnerShadowEffect":{"PsdEffect":[]},"PsdOuterGlowEffect":{"PsdEffect":[]},"PsdSolidFillEffect":{"PsdEffect":[]},"PsdLayerAdditionalData":{"PsdLayerData":[]},"PsdLayerSectionDivider":{"PsdLayerData":[]},"InternalWebPFrame":{"WebPFrame":[]},"InternalWebPInfo":{"WebPInfo":[]},"Uint8List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"TypedData":[]},"Int16List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"TypedData":[]},"Int32List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"TypedData":[]},"Uint32List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"TypedData":[]}}')); A._Universe_addErasedTypes(init.typeUniverse, JSON.parse('{"EfficientLengthIterable":1,"UnmodifiableListBase":1,"NativeTypedArray":1,"StreamTransformerBase":2,"IterableBase":1,"ListBase":1,"MapBase":2,"_ListBase_Object_ListMixin":1,"_JsArray_JsObject_ListMixin":1}')); var string$ = { EOF_re: "EOF reached without finding string terminator", Error_: "Error handler must accept one Object or one Object and a StackTrace as arguments, and return a value of the returned future's type", _nativ: "[native implementations worker] Error responding: " }; var type$ = (function rtii() { var findType = A.findType; return { AsyncError: findType("AsyncError"), BitmapCompression: findType("BitmapCompression"), Blob: findType("Blob"), ColorTriplet: findType("ColorTriplet"), ConstantMapView_Symbol_dynamic: findType("ConstantMapView"), CssRule: findType("CssRule"), EfficientLengthIterable_dynamic: findType("EfficientLengthIterable<@>"), Error: findType("Error"), Event: findType("Event"), ExrAttribute: findType("ExrAttribute"), ExrHufDec: findType("ExrHufDec"), File: findType("File"), Function: findType("Function"), Future_Null_Function_MessageEvent: findType("Future(MessageEvent)"), Future_dynamic: findType("Future<@>"), HTreeGroup: findType("HTreeGroup"), HdrSlice: findType("HdrSlice"), HuffmanTree: findType("HuffmanTree"), IcoInfoImage: findType("IcoInfoImage"), ImageData: findType("ImageData"), Int32List: findType("Int32List"), Invocation: findType("Invocation"), Iterable_double: findType("Iterable"), Iterable_dynamic: findType("Iterable<@>"), Iterable_int: findType("Iterable"), JSArray_ComponentData: findType("JSArray"), JSArray_ExrChannel: findType("JSArray"), JSArray_GifImageDesc: findType("JSArray"), JSArray_HTreeGroup: findType("JSArray"), JSArray_Image: findType("JSArray"), JSArray_InternalExrPart: findType("JSArray"), JSArray_List_List_List_int: findType("JSArray>>>"), JSArray_List_List_int: findType("JSArray>>"), JSArray_List_int: findType("JSArray>"), JSArray_List_num: findType("JSArray>"), JSArray_PngFrame: findType("JSArray"), JSArray_PsdChannel: findType("JSArray"), JSArray_PsdEffect: findType("JSArray"), JSArray_PsdLayer: findType("JSArray"), JSArray_String: findType("JSArray"), JSArray_TiffImage: findType("JSArray"), JSArray_Uint8List: findType("JSArray"), JSArray_VP8FInfo: findType("JSArray"), JSArray_VP8LTransform: findType("JSArray"), JSArray_WebPFrame: findType("JSArray"), JSArray__JpegHuffman: findType("JSArray<_JpegHuffman>"), JSArray_dynamic: findType("JSArray<@>"), JSArray_int: findType("JSArray"), JSArray_nullable_JpegFrame: findType("JSArray"), JSArray_nullable_List_dynamic: findType("JSArray?>"), JSArray_nullable_List_int: findType("JSArray?>"), JSArray_nullable_Uint32List: findType("JSArray"), JSArray_num: findType("JSArray"), JSArray_of_void_Function_InputBuffer: findType("JSArray<~(InputBuffer)>"), JSNull: findType("JSNull"), JavaScriptFunction: findType("JavaScriptFunction"), JavaScriptIndexingBehavior_dynamic: findType("JavaScriptIndexingBehavior<@>"), JpegComponent: findType("JpegComponent"), JsArray_dynamic: findType("JsArray<@>"), JsLinkedHashMap_Symbol_dynamic: findType("JsLinkedHashMap"), KeyBackupData: findType("KeyBackupData"), KeyRange: findType("KeyRange"), Length: findType("Length"), LinkedHashMap_dynamic_dynamic: findType("LinkedHashMap<@,@>"), List_ColorTriplet: findType("List"), List_HTreeGroup: findType("List"), List_Image: findType("List"), List_Int32List: findType("List"), List_List_List_int: findType("List>>"), List_List_VP8FInfo: findType("List>"), List_PsdChannel: findType("List"), List_PsdLayer: findType("List"), List_VP8BandProbas: findType("List"), List_VP8FInfo: findType("List"), List_VP8MB: findType("List"), List_VP8MBData: findType("List"), List_VP8TopSamples: findType("List"), List_double: findType("List"), List_dynamic: findType("List<@>"), List_int: findType("List"), List_nullable_List_int: findType("List?>"), List_nullable_VP8FInfo: findType("List"), List_nullable__PizChannelData: findType("List<_PizChannelData?>"), List_nullable_int: findType("List"), MapEntry_String_String: findType("MapEntry"), MapEntry_of_String_and_Map_String_dynamic: findType("MapEntry>"), MapEntry_of_String_and_Map_String_int: findType("MapEntry>"), Map_String_String: findType("Map"), Map_String_dynamic: findType("Map"), Map_String_int: findType("Map"), Map_dynamic_dynamic: findType("Map<@,@>"), MessageEvent: findType("MessageEvent"), MimeType: findType("MimeType"), NativeTypedArrayOfDouble: findType("NativeTypedArrayOfDouble"), NativeTypedArrayOfInt: findType("NativeTypedArrayOfInt"), NativeUint8List: findType("NativeUint8List"), Node: findType("Node"), Null: findType("Null"), Number: findType("Number"), Object: findType("Object"), Plugin: findType("Plugin"), PsdChannel: findType("PsdChannel"), PsdImageResource: findType("PsdImageResource"), PsdLayerAdditionalData: findType("PsdLayerAdditionalData"), PsdLayerData: findType("PsdLayerData"), Rectangle_num: findType("Rectangle"), Request: findType("Request"), RoomKeyBackup: findType("RoomKeyBackup"), SourceBuffer: findType("SourceBuffer"), SpeechGrammar: findType("SpeechGrammar"), SpeechRecognitionResult: findType("SpeechRecognitionResult"), StackTrace: findType("StackTrace"), String: findType("String"), StyleSheet: findType("StyleSheet"), Symbol: findType("Symbol0"), TextTrack: findType("TextTrack"), TextTrackCue: findType("TextTrackCue"), TiffEntry: findType("TiffEntry"), Touch: findType("Touch"), Transform: findType("Transform"), Type: findType("Type"), TypeError: findType("TypeError"), TypedData: findType("TypedData"), Uint32List: findType("Uint32List"), Uint8List: findType("Uint8List"), UnknownJavaScriptObject: findType("UnknownJavaScriptObject"), VP8BandProbas: findType("VP8BandProbas"), VP8MB: findType("VP8MB"), VP8MBData: findType("VP8MBData"), VP8TopSamples: findType("VP8TopSamples"), WhereTypeIterable_int: findType("WhereTypeIterable"), Window: findType("Window"), WindowBase: findType("WindowBase"), WorkerGlobalScope: findType("WorkerGlobalScope"), _DbInboundGroupSessionBundle: findType("_DbInboundGroupSessionBundle"), _Future_dynamic: findType("_Future<@>"), _IdentityHashMap_dynamic_dynamic: findType("_IdentityHashMap<@,@>"), _PizChannelData: findType("_PizChannelData"), _StaticTree: findType("_StaticTree"), bool: findType("bool"), bool_Function_Object: findType("bool(Object)"), double: findType("double"), dynamic: findType("@"), dynamic_Function: findType("@()"), dynamic_Function_Object: findType("@(Object)"), dynamic_Function_Object_StackTrace: findType("@(Object,StackTrace)"), dynamic_Function_dynamic_dynamic: findType("@(@,@)"), int: findType("int"), legacy_Never: findType("0&*"), legacy_Object: findType("Object*"), nullable_EventTarget: findType("EventTarget?"), nullable_Future_Null: findType("Future?"), nullable_Gamepad: findType("Gamepad?"), nullable_Int16List: findType("Int16List?"), nullable_List_Uint8List: findType("List?"), nullable_List_dynamic: findType("List<@>?"), nullable_List_int: findType("List?"), nullable_List_nullable_List_int: findType("List?>?"), nullable_List_nullable_Uint32List: findType("List?"), nullable_List_nullable_int: findType("List?"), nullable_Map_String_String: findType("Map?"), nullable_Object: findType("Object?"), nullable_StackTrace: findType("StackTrace?"), nullable_String: findType("String?"), nullable_Uint8List: findType("Uint8List?"), nullable_VP8BitReader: findType("VP8BitReader?"), nullable_VP8FInfo: findType("VP8FInfo?"), nullable_VP8QuantMatrix: findType("VP8QuantMatrix?"), nullable__FutureListener_dynamic_dynamic: findType("_FutureListener<@,@>?"), nullable_int: findType("int?"), nullable_void_Function_int: findType("~(int)?"), num: findType("num"), void: findType("~"), void_Function: findType("~()"), void_Function_2_JpegComponent_and_List_int: findType("~(JpegComponent,List)"), void_Function_3_nullable_Object_and_StackTrace_and_double: findType("~(Object?,StackTrace,double)"), void_Function_String_String: findType("~(String,String)"), void_Function_String_dynamic: findType("~(String,@)"), void_Function_int: findType("~(int)") }; })(); (function constants() { var makeConstList = hunkHelpers.makeConstList; B.Interceptor_methods = J.Interceptor.prototype; B.JSArray_methods = J.JSArray.prototype; B.JSInt_methods = J.JSInt.prototype; B.JSNumber_methods = J.JSNumber.prototype; B.JSString_methods = J.JSString.prototype; B.JavaScriptFunction_methods = J.JavaScriptFunction.prototype; B.JavaScriptObject_methods = J.JavaScriptObject.prototype; B.NativeUint32List_methods = A.NativeUint32List.prototype; B.NativeUint8List_methods = A.NativeUint8List.prototype; B.PlainJavaScriptObject_methods = J.PlainJavaScriptObject.prototype; B.UnknownJavaScriptObject_methods = J.UnknownJavaScriptObject.prototype; B.BitmapCompression_0 = new A.BitmapCompression(0, "BI_BITFIELDS"); B.BitmapCompression_1 = new A.BitmapCompression(1, "NONE"); B.BlendMode_1 = new A.BlendMode(1, "over"); B.CONSTANT = new A.Instantiation1(A.math__max$closure(), A.findType("Instantiation1")); B.C_EmptyIterator = new A.EmptyIterator(A.findType("EmptyIterator<0&>")); B.C_JS_CONST = function getTagFallback(o) { var s = Object.prototype.toString.call(o); return s.substring(8, s.length - 1); }; B.C_JS_CONST0 = function() { var toStringFunction = Object.prototype.toString; function getTag(o) { var s = toStringFunction.call(o); return s.substring(8, s.length - 1); } function getUnknownTag(object, tag) { if (/^HTML[A-Z].*Element$/.test(tag)) { var name = toStringFunction.call(object); if (name == "[object Object]") return null; return "HTMLElement"; } } function getUnknownTagGenericBrowser(object, tag) { if (self.HTMLElement && object instanceof HTMLElement) return "HTMLElement"; return getUnknownTag(object, tag); } function prototypeForTag(tag) { if (typeof window == "undefined") return null; if (typeof window[tag] == "undefined") return null; var constructor = window[tag]; if (typeof constructor != "function") return null; return constructor.prototype; } function discriminator(tag) { return null; } var isBrowser = typeof navigator == "object"; return { getTag: getTag, getUnknownTag: isBrowser ? getUnknownTagGenericBrowser : getUnknownTag, prototypeForTag: prototypeForTag, discriminator: discriminator }; }; B.C_JS_CONST6 = function(getTagFallback) { return function(hooks) { if (typeof navigator != "object") return hooks; var ua = navigator.userAgent; if (ua.indexOf("DumpRenderTree") >= 0) return hooks; if (ua.indexOf("Chrome") >= 0) { function confirm(p) { return typeof window == "object" && window[p] && window[p].name == p; } if (confirm("Window") && confirm("HTMLElement")) return hooks; } hooks.getTag = getTagFallback; }; }; B.C_JS_CONST1 = function(hooks) { if (typeof dartExperimentalFixupGetTag != "function") return hooks; hooks.getTag = dartExperimentalFixupGetTag(hooks.getTag); }; B.C_JS_CONST2 = function(hooks) { var getTag = hooks.getTag; var prototypeForTag = hooks.prototypeForTag; function getTagFixed(o) { var tag = getTag(o); if (tag == "Document") { if (!!o.xmlVersion) return "!Document"; return "!HTMLDocument"; } return tag; } function prototypeForTagFixed(tag) { if (tag == "Document") return null; return prototypeForTag(tag); } hooks.getTag = getTagFixed; hooks.prototypeForTag = prototypeForTagFixed; }; B.C_JS_CONST5 = function(hooks) { var userAgent = typeof navigator == "object" ? navigator.userAgent : ""; if (userAgent.indexOf("Firefox") == -1) return hooks; var getTag = hooks.getTag; var quickMap = { "BeforeUnloadEvent": "Event", "DataTransfer": "Clipboard", "GeoGeolocation": "Geolocation", "Location": "!Location", "WorkerMessageEvent": "MessageEvent", "XMLDocument": "!Document"}; function getTagFirefox(o) { var tag = getTag(o); return quickMap[tag] || tag; } hooks.getTag = getTagFirefox; }; B.C_JS_CONST4 = function(hooks) { var userAgent = typeof navigator == "object" ? navigator.userAgent : ""; if (userAgent.indexOf("Trident/") == -1) return hooks; var getTag = hooks.getTag; var quickMap = { "BeforeUnloadEvent": "Event", "DataTransfer": "Clipboard", "HTMLDDElement": "HTMLElement", "HTMLDTElement": "HTMLElement", "HTMLPhraseElement": "HTMLElement", "Position": "Geoposition" }; function getTagIE(o) { var tag = getTag(o); var newTag = quickMap[tag]; if (newTag) return newTag; if (tag == "Object") { if (window.DataView && (o instanceof window.DataView)) return "DataView"; } return tag; } function prototypeForTagIE(tag) { var constructor = window[tag]; if (constructor == null) return null; return constructor.prototype; } hooks.getTag = getTagIE; hooks.prototypeForTag = prototypeForTagIE; }; B.C_JS_CONST3 = function(hooks) { return hooks; } ; B.C_JsonCodec = new A.JsonCodec(); B.C_Latin1Codec = new A.Latin1Codec(); B.C_Latin1Encoder = new A.Latin1Encoder(); B.C_OutOfMemoryError = new A.OutOfMemoryError(); B.C_SentinelValue = new A.SentinelValue(); B.C_ZLibDecoder = new A.ZLibDecoder(); B.C_ZLibEncoder = new A.ZLibEncoder(); B.C__Required = new A._Required(); B.C__RootZone = new A._RootZone(); B.C__StringStackTrace = new A._StringStackTrace(); B.C__ZLibDecoder = new A._ZLibDecoder(); B.Channels_0 = new A.Channels(0, "rgb"); B.Channels_1 = new A.Channels(1, "rgba"); B.DisposeMode_1 = new A.DisposeMode(1, "clear"); B.DitherKernel_0 = new A.DitherKernel(0, "None"); B.DitherKernel_2 = new A.DitherKernel(2, "FloydSteinberg"); B.Format_2 = new A.Format(2, "rgba"); B.ICCPCompression_1 = new A.ICCPCompression(1, "deflate"); B.Interpolation_0 = new A.Interpolation(0, "nearest"); B.Interpolation_1 = new A.Interpolation(1, "linear"); B.Interpolation_2 = new A.Interpolation(2, "cubic"); B.JsonDecoder_null = new A.JsonDecoder(null); B.JsonEncoder_null_null = new A.JsonEncoder(null, null); B.Latin1Decoder_false = new A.Latin1Decoder(false); B.Level_1 = new A.Level(1, "error"); B.Level_3 = new A.Level(3, "info"); B.List_0W6 = A._setArrayType(makeConstList([A.vp8_filter_VP8Filter_DC8uv$closure(), A.vp8_filter_VP8Filter_TM8uv$closure(), A.vp8_filter_VP8Filter_VE8uv$closure(), A.vp8_filter_VP8Filter_HE8uv$closure(), A.vp8_filter_VP8Filter_DC8uvNoTop$closure(), A.vp8_filter_VP8Filter_DC8uvNoLeft$closure(), A.vp8_filter_VP8Filter_DC8uvNoTopLeft$closure()]), type$.JSArray_of_void_Function_InputBuffer); B.List_0_2_8 = A._setArrayType(makeConstList([0, 2, 8]), type$.JSArray_int); B.List_0_4_2_1 = A._setArrayType(makeConstList([0, 4, 2, 1]), type$.JSArray_int); B.List_292_260_226_226 = A._setArrayType(makeConstList([292, 260, 226, 226]), type$.JSArray_int); B.List_2Bc = A._setArrayType(makeConstList([8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8]), type$.JSArray_int); B.List_2Vk = A._setArrayType(makeConstList([137, 80, 78, 71, 13, 10, 26, 10]), type$.JSArray_int); B.List_2_3_7 = A._setArrayType(makeConstList([2, 3, 7]), type$.JSArray_int); B.List_3_3_11 = A._setArrayType(makeConstList([3, 3, 11]), type$.JSArray_int); B.List_511_1023_2047_4095 = A._setArrayType(makeConstList([511, 1023, 2047, 4095]), type$.JSArray_int); B.List_U2p = A._setArrayType(makeConstList([231, 120, 48, 89, 115, 113, 120, 152, 112]), type$.JSArray_int); B.List_yXZ = A._setArrayType(makeConstList([152, 179, 64, 126, 170, 118, 46, 70, 95]), type$.JSArray_int); B.List_yXZ0 = A._setArrayType(makeConstList([175, 69, 143, 80, 85, 82, 72, 155, 103]), type$.JSArray_int); B.List_yXZ1 = A._setArrayType(makeConstList([56, 58, 10, 171, 218, 189, 17, 13, 152]), type$.JSArray_int); B.List_yXZ2 = A._setArrayType(makeConstList([114, 26, 17, 163, 44, 195, 21, 10, 173]), type$.JSArray_int); B.List_yXZ3 = A._setArrayType(makeConstList([121, 24, 80, 195, 26, 62, 44, 64, 85]), type$.JSArray_int); B.List_yXZ4 = A._setArrayType(makeConstList([144, 71, 10, 38, 171, 213, 144, 34, 26]), type$.JSArray_int); B.List_yXZ5 = A._setArrayType(makeConstList([170, 46, 55, 19, 136, 160, 33, 206, 71]), type$.JSArray_int); B.List_yXZ6 = A._setArrayType(makeConstList([63, 20, 8, 114, 114, 208, 12, 9, 226]), type$.JSArray_int); B.List_yXZ7 = A._setArrayType(makeConstList([81, 40, 11, 96, 182, 84, 29, 16, 36]), type$.JSArray_int); B.List_sty0 = A._setArrayType(makeConstList([B.List_U2p, B.List_yXZ, B.List_yXZ0, B.List_yXZ1, B.List_yXZ2, B.List_yXZ3, B.List_yXZ4, B.List_yXZ5, B.List_yXZ6, B.List_yXZ7]), type$.JSArray_List_int); B.List_yXZ8 = A._setArrayType(makeConstList([134, 183, 89, 137, 98, 101, 106, 165, 148]), type$.JSArray_int); B.List_yXZ9 = A._setArrayType(makeConstList([72, 187, 100, 130, 157, 111, 32, 75, 80]), type$.JSArray_int); B.List_yXZ10 = A._setArrayType(makeConstList([66, 102, 167, 99, 74, 62, 40, 234, 128]), type$.JSArray_int); B.List_kfn = A._setArrayType(makeConstList([41, 53, 9, 178, 241, 141, 26, 8, 107]), type$.JSArray_int); B.List_yXZ11 = A._setArrayType(makeConstList([74, 43, 26, 146, 73, 166, 49, 23, 157]), type$.JSArray_int); B.List_yXZ12 = A._setArrayType(makeConstList([65, 38, 105, 160, 51, 52, 31, 115, 128]), type$.JSArray_int); B.List_eDA = A._setArrayType(makeConstList([104, 79, 12, 27, 217, 255, 87, 17, 7]), type$.JSArray_int); B.List_yXZ13 = A._setArrayType(makeConstList([87, 68, 71, 44, 114, 51, 15, 186, 23]), type$.JSArray_int); B.List_yXZ14 = A._setArrayType(makeConstList([47, 41, 14, 110, 182, 183, 21, 17, 194]), type$.JSArray_int); B.List_yXZ15 = A._setArrayType(makeConstList([66, 45, 25, 102, 197, 189, 23, 18, 22]), type$.JSArray_int); B.List_L3W = A._setArrayType(makeConstList([B.List_yXZ8, B.List_yXZ9, B.List_yXZ10, B.List_kfn, B.List_yXZ11, B.List_yXZ12, B.List_eDA, B.List_yXZ13, B.List_yXZ14, B.List_yXZ15]), type$.JSArray_List_int); B.List_yXZ16 = A._setArrayType(makeConstList([88, 88, 147, 150, 42, 46, 45, 196, 205]), type$.JSArray_int); B.List_yXZ17 = A._setArrayType(makeConstList([43, 97, 183, 117, 85, 38, 35, 179, 61]), type$.JSArray_int); B.List_yXZ18 = A._setArrayType(makeConstList([39, 53, 200, 87, 26, 21, 43, 232, 171]), type$.JSArray_int); B.List_yXZ19 = A._setArrayType(makeConstList([56, 34, 51, 104, 114, 102, 29, 93, 77]), type$.JSArray_int); B.List_yXZ20 = A._setArrayType(makeConstList([39, 28, 85, 171, 58, 165, 90, 98, 64]), type$.JSArray_int); B.List_yXZ21 = A._setArrayType(makeConstList([34, 22, 116, 206, 23, 34, 43, 166, 73]), type$.JSArray_int); B.List_yXZ22 = A._setArrayType(makeConstList([107, 54, 32, 26, 51, 1, 81, 43, 31]), type$.JSArray_int); B.List_yXZ23 = A._setArrayType(makeConstList([68, 25, 106, 22, 64, 171, 36, 225, 114]), type$.JSArray_int); B.List_yXZ24 = A._setArrayType(makeConstList([34, 19, 21, 102, 132, 188, 16, 76, 124]), type$.JSArray_int); B.List_yXZ25 = A._setArrayType(makeConstList([62, 18, 78, 95, 85, 57, 50, 48, 51]), type$.JSArray_int); B.List_ECY = A._setArrayType(makeConstList([B.List_yXZ16, B.List_yXZ17, B.List_yXZ18, B.List_yXZ19, B.List_yXZ20, B.List_yXZ21, B.List_yXZ22, B.List_yXZ23, B.List_yXZ24, B.List_yXZ25]), type$.JSArray_List_int); B.List_yXZ26 = A._setArrayType(makeConstList([193, 101, 35, 159, 215, 111, 89, 46, 111]), type$.JSArray_int); B.List_yXZ27 = A._setArrayType(makeConstList([60, 148, 31, 172, 219, 228, 21, 18, 111]), type$.JSArray_int); B.List_eDA0 = A._setArrayType(makeConstList([112, 113, 77, 85, 179, 255, 38, 120, 114]), type$.JSArray_int); B.List_kfn0 = A._setArrayType(makeConstList([40, 42, 1, 196, 245, 209, 10, 25, 109]), type$.JSArray_int); B.List_yXZ28 = A._setArrayType(makeConstList([88, 43, 29, 140, 166, 213, 37, 43, 154]), type$.JSArray_int); B.List_yXZ29 = A._setArrayType(makeConstList([61, 63, 30, 155, 67, 45, 68, 1, 209]), type$.JSArray_int); B.List_yXZ30 = A._setArrayType(makeConstList([100, 80, 8, 43, 154, 1, 51, 26, 71]), type$.JSArray_int); B.List_kfn1 = A._setArrayType(makeConstList([142, 78, 78, 16, 255, 128, 34, 197, 171]), type$.JSArray_int); B.List_yXZ31 = A._setArrayType(makeConstList([41, 40, 5, 102, 211, 183, 4, 1, 221]), type$.JSArray_int); B.List_yXZ32 = A._setArrayType(makeConstList([51, 50, 17, 168, 209, 192, 23, 25, 82]), type$.JSArray_int); B.List_JO4 = A._setArrayType(makeConstList([B.List_yXZ26, B.List_yXZ27, B.List_eDA0, B.List_kfn0, B.List_yXZ28, B.List_yXZ29, B.List_yXZ30, B.List_kfn1, B.List_yXZ31, B.List_yXZ32]), type$.JSArray_List_int); B.List_knt1 = A._setArrayType(makeConstList([138, 31, 36, 171, 27, 166, 38, 44, 229]), type$.JSArray_int); B.List_yXZ33 = A._setArrayType(makeConstList([67, 87, 58, 169, 82, 115, 26, 59, 179]), type$.JSArray_int); B.List_yXZ34 = A._setArrayType(makeConstList([63, 59, 90, 180, 59, 166, 93, 73, 154]), type$.JSArray_int); B.List_yXZ35 = A._setArrayType(makeConstList([40, 40, 21, 116, 143, 209, 34, 39, 175]), type$.JSArray_int); B.List_yXZ36 = A._setArrayType(makeConstList([47, 15, 16, 183, 34, 223, 49, 45, 183]), type$.JSArray_int); B.List_yXZ37 = A._setArrayType(makeConstList([46, 17, 33, 183, 6, 98, 15, 32, 183]), type$.JSArray_int); B.List_yXZ38 = A._setArrayType(makeConstList([57, 46, 22, 24, 128, 1, 54, 17, 37]), type$.JSArray_int); B.List_yXZ39 = A._setArrayType(makeConstList([65, 32, 73, 115, 28, 128, 23, 128, 205]), type$.JSArray_int); B.List_yXZ40 = A._setArrayType(makeConstList([40, 3, 9, 115, 51, 192, 18, 6, 223]), type$.JSArray_int); B.List_yXZ41 = A._setArrayType(makeConstList([87, 37, 9, 115, 59, 77, 64, 21, 47]), type$.JSArray_int); B.List_wEo = A._setArrayType(makeConstList([B.List_knt1, B.List_yXZ33, B.List_yXZ34, B.List_yXZ35, B.List_yXZ36, B.List_yXZ37, B.List_yXZ38, B.List_yXZ39, B.List_yXZ40, B.List_yXZ41]), type$.JSArray_List_int); B.List_yXZ42 = A._setArrayType(makeConstList([104, 55, 44, 218, 9, 54, 53, 130, 226]), type$.JSArray_int); B.List_yXZ43 = A._setArrayType(makeConstList([64, 90, 70, 205, 40, 41, 23, 26, 57]), type$.JSArray_int); B.List_yXZ44 = A._setArrayType(makeConstList([54, 57, 112, 184, 5, 41, 38, 166, 213]), type$.JSArray_int); B.List_yXZ45 = A._setArrayType(makeConstList([30, 34, 26, 133, 152, 116, 10, 32, 134]), type$.JSArray_int); B.List_knt2 = A._setArrayType(makeConstList([39, 19, 53, 221, 26, 114, 32, 73, 255]), type$.JSArray_int); B.List_yXZ46 = A._setArrayType(makeConstList([31, 9, 65, 234, 2, 15, 1, 118, 73]), type$.JSArray_int); B.List_eDA1 = A._setArrayType(makeConstList([75, 32, 12, 51, 192, 255, 160, 43, 51]), type$.JSArray_int); B.List_yXZ47 = A._setArrayType(makeConstList([88, 31, 35, 67, 102, 85, 55, 186, 85]), type$.JSArray_int); B.List_yXZ48 = A._setArrayType(makeConstList([56, 21, 23, 111, 59, 205, 45, 37, 192]), type$.JSArray_int); B.List_yXZ49 = A._setArrayType(makeConstList([55, 38, 70, 124, 73, 102, 1, 34, 98]), type$.JSArray_int); B.List_0 = A._setArrayType(makeConstList([B.List_yXZ42, B.List_yXZ43, B.List_yXZ44, B.List_yXZ45, B.List_knt2, B.List_yXZ46, B.List_eDA1, B.List_yXZ47, B.List_yXZ48, B.List_yXZ49]), type$.JSArray_List_int); B.List_yXZ50 = A._setArrayType(makeConstList([125, 98, 42, 88, 104, 85, 117, 175, 82]), type$.JSArray_int); B.List_yXZ51 = A._setArrayType(makeConstList([95, 84, 53, 89, 128, 100, 113, 101, 45]), type$.JSArray_int); B.List_yXZ52 = A._setArrayType(makeConstList([75, 79, 123, 47, 51, 128, 81, 171, 1]), type$.JSArray_int); B.List_yXZ53 = A._setArrayType(makeConstList([57, 17, 5, 71, 102, 57, 53, 41, 49]), type$.JSArray_int); B.List_yXZ54 = A._setArrayType(makeConstList([38, 33, 13, 121, 57, 73, 26, 1, 85]), type$.JSArray_int); B.List_yXZ55 = A._setArrayType(makeConstList([41, 10, 67, 138, 77, 110, 90, 47, 114]), type$.JSArray_int); B.List_eDA2 = A._setArrayType(makeConstList([115, 21, 2, 10, 102, 255, 166, 23, 6]), type$.JSArray_int); B.List_yXZ56 = A._setArrayType(makeConstList([101, 29, 16, 10, 85, 128, 101, 196, 26]), type$.JSArray_int); B.List_yXZ57 = A._setArrayType(makeConstList([57, 18, 10, 102, 102, 213, 34, 20, 43]), type$.JSArray_int); B.List_yXZ58 = A._setArrayType(makeConstList([117, 20, 15, 36, 163, 128, 68, 1, 26]), type$.JSArray_int); B.List_a5W = A._setArrayType(makeConstList([B.List_yXZ50, B.List_yXZ51, B.List_yXZ52, B.List_yXZ53, B.List_yXZ54, B.List_yXZ55, B.List_eDA2, B.List_yXZ56, B.List_yXZ57, B.List_yXZ58]), type$.JSArray_List_int); B.List_h47 = A._setArrayType(makeConstList([102, 61, 71, 37, 34, 53, 31, 243, 192]), type$.JSArray_int); B.List_yXZ59 = A._setArrayType(makeConstList([69, 60, 71, 38, 73, 119, 28, 222, 37]), type$.JSArray_int); B.List_h470 = A._setArrayType(makeConstList([68, 45, 128, 34, 1, 47, 11, 245, 171]), type$.JSArray_int); B.List_yXZ60 = A._setArrayType(makeConstList([62, 17, 19, 70, 146, 85, 55, 62, 70]), type$.JSArray_int); B.List_yXZ61 = A._setArrayType(makeConstList([37, 43, 37, 154, 100, 163, 85, 160, 1]), type$.JSArray_int); B.List_yXZ62 = A._setArrayType(makeConstList([63, 9, 92, 136, 28, 64, 32, 201, 85]), type$.JSArray_int); B.List_eDA3 = A._setArrayType(makeConstList([75, 15, 9, 9, 64, 255, 184, 119, 16]), type$.JSArray_int); B.List_eDA4 = A._setArrayType(makeConstList([86, 6, 28, 5, 64, 255, 25, 248, 1]), type$.JSArray_int); B.List_eDA5 = A._setArrayType(makeConstList([56, 8, 17, 132, 137, 255, 55, 116, 128]), type$.JSArray_int); B.List_yXZ63 = A._setArrayType(makeConstList([58, 15, 20, 82, 135, 57, 26, 121, 40]), type$.JSArray_int); B.List_6oq = A._setArrayType(makeConstList([B.List_h47, B.List_yXZ59, B.List_h470, B.List_yXZ60, B.List_yXZ61, B.List_yXZ62, B.List_eDA3, B.List_eDA4, B.List_eDA5, B.List_yXZ63]), type$.JSArray_List_int); B.List_yXZ64 = A._setArrayType(makeConstList([164, 50, 31, 137, 154, 133, 25, 35, 218]), type$.JSArray_int); B.List_yXZ65 = A._setArrayType(makeConstList([51, 103, 44, 131, 131, 123, 31, 6, 158]), type$.JSArray_int); B.List_yXZ66 = A._setArrayType(makeConstList([86, 40, 64, 135, 148, 224, 45, 183, 128]), type$.JSArray_int); B.List_yXZ67 = A._setArrayType(makeConstList([22, 26, 17, 131, 240, 154, 14, 1, 209]), type$.JSArray_int); B.List_yXZ68 = A._setArrayType(makeConstList([45, 16, 21, 91, 64, 222, 7, 1, 197]), type$.JSArray_int); B.List_yXZ69 = A._setArrayType(makeConstList([56, 21, 39, 155, 60, 138, 23, 102, 213]), type$.JSArray_int); B.List_eDA6 = A._setArrayType(makeConstList([83, 12, 13, 54, 192, 255, 68, 47, 28]), type$.JSArray_int); B.List_yXZ70 = A._setArrayType(makeConstList([85, 26, 85, 85, 128, 128, 32, 146, 171]), type$.JSArray_int); B.List_yXZ71 = A._setArrayType(makeConstList([18, 11, 7, 63, 144, 171, 4, 4, 246]), type$.JSArray_int); B.List_yXZ72 = A._setArrayType(makeConstList([35, 27, 10, 146, 174, 171, 12, 26, 128]), type$.JSArray_int); B.List_a5W0 = A._setArrayType(makeConstList([B.List_yXZ64, B.List_yXZ65, B.List_yXZ66, B.List_yXZ67, B.List_yXZ68, B.List_yXZ69, B.List_eDA6, B.List_yXZ70, B.List_yXZ71, B.List_yXZ72]), type$.JSArray_List_int); B.List_yXZ73 = A._setArrayType(makeConstList([190, 80, 35, 99, 180, 80, 126, 54, 45]), type$.JSArray_int); B.List_yXZ74 = A._setArrayType(makeConstList([85, 126, 47, 87, 176, 51, 41, 20, 32]), type$.JSArray_int); B.List_yXZ75 = A._setArrayType(makeConstList([101, 75, 128, 139, 118, 146, 116, 128, 85]), type$.JSArray_int); B.List_yXZ76 = A._setArrayType(makeConstList([56, 41, 15, 176, 236, 85, 37, 9, 62]), type$.JSArray_int); B.List_eDA7 = A._setArrayType(makeConstList([71, 30, 17, 119, 118, 255, 17, 18, 138]), type$.JSArray_int); B.List_yXZ77 = A._setArrayType(makeConstList([101, 38, 60, 138, 55, 70, 43, 26, 142]), type$.JSArray_int); B.List_eDA8 = A._setArrayType(makeConstList([146, 36, 19, 30, 171, 255, 97, 27, 20]), type$.JSArray_int); B.List_yXZ78 = A._setArrayType(makeConstList([138, 45, 61, 62, 219, 1, 81, 188, 64]), type$.JSArray_int); B.List_yXZ79 = A._setArrayType(makeConstList([32, 41, 20, 117, 151, 142, 20, 21, 163]), type$.JSArray_int); B.List_yXZ80 = A._setArrayType(makeConstList([112, 19, 12, 61, 195, 128, 48, 4, 24]), type$.JSArray_int); B.List_RrN = A._setArrayType(makeConstList([B.List_yXZ73, B.List_yXZ74, B.List_yXZ75, B.List_yXZ76, B.List_eDA7, B.List_yXZ77, B.List_eDA8, B.List_yXZ78, B.List_yXZ79, B.List_yXZ80]), type$.JSArray_List_int); B.List_799 = A._setArrayType(makeConstList([B.List_sty0, B.List_L3W, B.List_ECY, B.List_JO4, B.List_wEo, B.List_0, B.List_a5W, B.List_6oq, B.List_a5W0, B.List_RrN]), type$.JSArray_List_List_int); B.List_89P = A._setArrayType(makeConstList([3226, 6412, 200, 168, 38, 38, 134, 134, 100, 100, 100, 100, 68, 68, 68, 68]), type$.JSArray_int); B.List_8_8_4_2 = A._setArrayType(makeConstList([8, 8, 4, 2]), type$.JSArray_int); B.List_8aB = A._setArrayType(makeConstList([A.vp8_filter_VP8Filter_DC16$closure(), A.vp8_filter_VP8Filter_TM16$closure(), A.vp8_filter_VP8Filter_VE16$closure(), A.vp8_filter_VP8Filter_HE16$closure(), A.vp8_filter_VP8Filter_DC16NoTop$closure(), A.vp8_filter_VP8Filter_DC16NoLeft$closure(), A.vp8_filter_VP8Filter_DC16NoTopLeft$closure()]), type$.JSArray_of_void_Function_InputBuffer); B.List_8co1 = A._setArrayType(makeConstList([4, 5, 6, 7, 8, 9, 10, 10, 11, 12, 13, 14, 15, 16, 17, 17, 18, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 25, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 91, 93, 95, 96, 98, 100, 101, 102, 104, 106, 108, 110, 112, 114, 116, 118, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 143, 145, 148, 151, 154, 157]), type$.JSArray_int); B.List_8co0 = A._setArrayType(makeConstList([7, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0]), type$.JSArray_int); B.List_8co = A._setArrayType(makeConstList([80, 88, 23, 71, 30, 30, 62, 62, 4, 4, 4, 4, 4, 4, 4, 4, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41]), type$.JSArray_int); B.List_AKW = A._setArrayType(makeConstList([0, 1, 2, 3, 17, 4, 5, 33, 49, 6, 18, 65, 81, 7, 97, 113, 19, 34, 50, 129, 8, 20, 66, 145, 161, 177, 193, 9, 35, 51, 82, 240, 21, 98, 114, 209, 10, 22, 36, 52, 225, 37, 241, 23, 24, 25, 26, 38, 39, 40, 41, 42, 53, 54, 55, 56, 57, 58, 67, 68, 69, 70, 71, 72, 73, 74, 83, 84, 85, 86, 87, 88, 89, 90, 99, 100, 101, 102, 103, 104, 105, 106, 115, 116, 117, 118, 119, 120, 121, 122, 130, 131, 132, 133, 134, 135, 136, 137, 138, 146, 147, 148, 149, 150, 151, 152, 153, 154, 162, 163, 164, 165, 166, 167, 168, 169, 170, 178, 179, 180, 181, 182, 183, 184, 185, 186, 194, 195, 196, 197, 198, 199, 200, 201, 202, 210, 211, 212, 213, 214, 215, 216, 217, 218, 226, 227, 228, 229, 230, 231, 232, 233, 234, 242, 243, 244, 245, 246, 247, 248, 249, 250]), type$.JSArray_int); B.List_AYZ = A._setArrayType(makeConstList([24, 7, 23, 25, 40, 6, 39, 41, 22, 26, 38, 42, 56, 5, 55, 57, 21, 27, 54, 58, 37, 43, 72, 4, 71, 73, 20, 28, 53, 59, 70, 74, 36, 44, 88, 69, 75, 52, 60, 3, 87, 89, 19, 29, 86, 90, 35, 45, 68, 76, 85, 91, 51, 61, 104, 2, 103, 105, 18, 30, 102, 106, 34, 46, 84, 92, 67, 77, 101, 107, 50, 62, 120, 1, 119, 121, 83, 93, 17, 31, 100, 108, 66, 78, 118, 122, 33, 47, 117, 123, 49, 63, 99, 109, 82, 94, 0, 116, 124, 65, 79, 16, 32, 98, 110, 48, 115, 125, 81, 95, 64, 114, 126, 97, 111, 80, 113, 127, 96, 112]), type$.JSArray_int); B.List_AZw = A._setArrayType(makeConstList([0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 12, 19, 26, 33, 40, 48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36, 29, 22, 15, 23, 30, 37, 44, 51, 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63]), type$.JSArray_int); B.List_AiM = A._setArrayType(makeConstList([4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 119, 122, 125, 128, 131, 134, 137, 140, 143, 146, 149, 152, 155, 158, 161, 164, 167, 170, 173, 177, 181, 185, 189, 193, 197, 201, 205, 209, 213, 217, 221, 225, 229, 234, 239, 245, 249, 254, 259, 264, 269, 274, 279, 284]), type$.JSArray_int); B.List_AyI = A._setArrayType(makeConstList([0, 1, 2, 3, 4, 4, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 16, 17, 18, 18, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29]), type$.JSArray_int); B.List_B8J = A._setArrayType(makeConstList([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, 936918000, 2847714899, 3736837829, 1202900863, 817233897, 3183342108, 3401237130, 1404277552, 615818150, 3134207493, 3453421203, 1423857449, 601450431, 3009837614, 3294710456, 1567103746, 711928724, 3020668471, 3272380065, 1510334235, 755167117]), type$.JSArray_int); B.List_DKo = A._setArrayType(makeConstList([0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, 32767, 65535, 131071, 262143, 524287, 1048575, 2097151, 4194303, 8388607, 16777215, 33554431, 67108863, 134217727, 268435455, 536870911, 1073741823, 2147483647, 4294967295]), type$.JSArray_int); B.List_F1L0 = A._setArrayType(makeConstList([0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0]), type$.JSArray_int); B.List_F1L3 = A._setArrayType(makeConstList([0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119]), type$.JSArray_int); B.List_F1L2 = A._setArrayType(makeConstList([0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125]), type$.JSArray_int); B.List_F1L1 = A._setArrayType(makeConstList([0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0]), type$.JSArray_int); B.List_F1L = A._setArrayType(makeConstList([0, 1, 2, 3, 6, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7, 0]), type$.JSArray_int); B.List_G61 = A._setArrayType(makeConstList([1, 2, 3, 0, 4, 17, 5, 18, 33, 49, 65, 6, 19, 81, 97, 7, 34, 113, 20, 50, 129, 145, 161, 8, 35, 66, 177, 193, 21, 82, 209, 240, 36, 51, 98, 114, 130, 9, 10, 22, 23, 24, 25, 26, 37, 38, 39, 40, 41, 42, 52, 53, 54, 55, 56, 57, 58, 67, 68, 69, 70, 71, 72, 73, 74, 83, 84, 85, 86, 87, 88, 89, 90, 99, 100, 101, 102, 103, 104, 105, 106, 115, 116, 117, 118, 119, 120, 121, 122, 131, 132, 133, 134, 135, 136, 137, 138, 146, 147, 148, 149, 150, 151, 152, 153, 154, 162, 163, 164, 165, 166, 167, 168, 169, 170, 178, 179, 180, 181, 182, 183, 184, 185, 186, 194, 195, 196, 197, 198, 199, 200, 201, 202, 210, 211, 212, 213, 214, 215, 216, 217, 218, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250]), type$.JSArray_int); B.List_HHa = A._setArrayType(makeConstList([null, A.webp_filters_WebPFilters_horizontalUnfilter$closure(), A.webp_filters_WebPFilters_verticalUnfilter$closure(), A.webp_filters_WebPFilters_gradientUnfilter$closure()]), A.findType("JSArray<~(int,int,int,int,int,Uint8List)?>")); B.WebWorkerOperations_0 = new A.WebWorkerOperations(0, "shrinkImage"); B.WebWorkerOperations_1 = new A.WebWorkerOperations(1, "calcImageMetadata"); B.WebWorkerOperations_2 = new A.WebWorkerOperations(2, "generateUploadKeys"); B.List_JmU = A._setArrayType(makeConstList([B.WebWorkerOperations_0, B.WebWorkerOperations_1, B.WebWorkerOperations_2]), A.findType("JSArray")); B.List_K2a = A._setArrayType(makeConstList([1, 1.387039845, 1.306562965, 1.175875602, 1, 0.785694958, 0.5411961, 0.275899379]), A.findType("JSArray")); B.List_MEg = A._setArrayType(makeConstList([28679, 28679, 31752, -32759, -31735, -30711, -29687, -28663, 29703, 29703, 30727, 30727, -27639, -26615, -25591, -24567]), type$.JSArray_int); B.List_q8u = A._setArrayType(makeConstList([255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_2du = A._setArrayType(makeConstList([B.List_q8u, B.List_q8u, B.List_q8u]), type$.JSArray_List_int); B.List_n3E = A._setArrayType(makeConstList([176, 246, 255, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_U8c = A._setArrayType(makeConstList([223, 241, 252, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_q8u0 = A._setArrayType(makeConstList([249, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_EkO = A._setArrayType(makeConstList([B.List_n3E, B.List_U8c, B.List_q8u0]), type$.JSArray_List_int); B.List_mXg = A._setArrayType(makeConstList([255, 244, 252, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_sav = A._setArrayType(makeConstList([234, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_q8u1 = A._setArrayType(makeConstList([253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_ezx = A._setArrayType(makeConstList([B.List_mXg, B.List_sav, B.List_q8u1]), type$.JSArray_List_int); B.List_mXg0 = A._setArrayType(makeConstList([255, 246, 254, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_wX4 = A._setArrayType(makeConstList([239, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_U8c0 = A._setArrayType(makeConstList([254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_Q1p = A._setArrayType(makeConstList([B.List_mXg0, B.List_wX4, B.List_U8c0]), type$.JSArray_List_int); B.List_mXg1 = A._setArrayType(makeConstList([255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_wX40 = A._setArrayType(makeConstList([251, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_ycb = A._setArrayType(makeConstList([B.List_mXg1, B.List_wX40, B.List_q8u]), type$.JSArray_List_int); B.List_wX41 = A._setArrayType(makeConstList([255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_mXg2 = A._setArrayType(makeConstList([251, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_AuU = A._setArrayType(makeConstList([B.List_wX41, B.List_mXg2, B.List_U8c0]), type$.JSArray_List_int); B.List_ekJ = A._setArrayType(makeConstList([255, 254, 253, 255, 254, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_vHK = A._setArrayType(makeConstList([250, 255, 254, 255, 254, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_Mic = A._setArrayType(makeConstList([254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_3oi = A._setArrayType(makeConstList([B.List_ekJ, B.List_vHK, B.List_Mic]), type$.JSArray_List_int); B.List_uwP = A._setArrayType(makeConstList([B.List_2du, B.List_EkO, B.List_ezx, B.List_Q1p, B.List_ycb, B.List_AuU, B.List_3oi, B.List_2du]), type$.JSArray_List_List_int); B.List_Mic0 = A._setArrayType(makeConstList([217, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_ku2 = A._setArrayType(makeConstList([225, 252, 241, 253, 255, 255, 254, 255, 255, 255, 255]), type$.JSArray_int); B.List_unK = A._setArrayType(makeConstList([234, 250, 241, 250, 253, 255, 253, 254, 255, 255, 255]), type$.JSArray_int); B.List_EuK = A._setArrayType(makeConstList([B.List_Mic0, B.List_ku2, B.List_unK]), type$.JSArray_List_int); B.List_H37 = A._setArrayType(makeConstList([255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_sav0 = A._setArrayType(makeConstList([223, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_00 = A._setArrayType(makeConstList([238, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_U05 = A._setArrayType(makeConstList([B.List_H37, B.List_sav0, B.List_00]), type$.JSArray_List_int); B.List_H370 = A._setArrayType(makeConstList([249, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_wEo0 = A._setArrayType(makeConstList([B.List_mXg1, B.List_H370, B.List_q8u]), type$.JSArray_List_int); B.List_q8u2 = A._setArrayType(makeConstList([255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_H371 = A._setArrayType(makeConstList([247, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_HmY = A._setArrayType(makeConstList([B.List_q8u2, B.List_H371, B.List_q8u]), type$.JSArray_List_int); B.List_Mic1 = A._setArrayType(makeConstList([252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_qJr = A._setArrayType(makeConstList([B.List_wX41, B.List_Mic1, B.List_q8u]), type$.JSArray_List_int); B.List_mXg3 = A._setArrayType(makeConstList([255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_oIk = A._setArrayType(makeConstList([B.List_mXg3, B.List_q8u1, B.List_q8u]), type$.JSArray_List_int); B.List_H372 = A._setArrayType(makeConstList([255, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_Mic2 = A._setArrayType(makeConstList([250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_23h = A._setArrayType(makeConstList([B.List_H372, B.List_Mic2, B.List_Mic]), type$.JSArray_List_int); B.List_Crw = A._setArrayType(makeConstList([B.List_EuK, B.List_U05, B.List_wEo0, B.List_HmY, B.List_qJr, B.List_oIk, B.List_23h, B.List_2du]), type$.JSArray_List_List_int); B.List_U8c1 = A._setArrayType(makeConstList([186, 251, 250, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_01 = A._setArrayType(makeConstList([234, 251, 244, 254, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_IyW = A._setArrayType(makeConstList([251, 251, 243, 253, 254, 255, 254, 255, 255, 255, 255]), type$.JSArray_int); B.List_ujV = A._setArrayType(makeConstList([B.List_U8c1, B.List_01, B.List_IyW]), type$.JSArray_List_int); B.List_U8c2 = A._setArrayType(makeConstList([236, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_A8Z = A._setArrayType(makeConstList([251, 253, 253, 254, 254, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_eFE = A._setArrayType(makeConstList([B.List_wX41, B.List_U8c2, B.List_A8Z]), type$.JSArray_List_int); B.List_sav1 = A._setArrayType(makeConstList([254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_ezx0 = A._setArrayType(makeConstList([B.List_mXg3, B.List_sav1, B.List_q8u]), type$.JSArray_List_int); B.List_n3E0 = A._setArrayType(makeConstList([254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_QXJ = A._setArrayType(makeConstList([B.List_H37, B.List_n3E0, B.List_Mic]), type$.JSArray_List_int); B.List_yzJ = A._setArrayType(makeConstList([B.List_q8u, B.List_Mic, B.List_q8u]), type$.JSArray_List_int); B.List_QcX = A._setArrayType(makeConstList([B.List_ujV, B.List_eFE, B.List_ezx0, B.List_QXJ, B.List_yzJ, B.List_2du, B.List_2du, B.List_2du]), type$.JSArray_List_List_int); B.List_Mic3 = A._setArrayType(makeConstList([248, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_AsR = A._setArrayType(makeConstList([250, 254, 252, 254, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_n3E1 = A._setArrayType(makeConstList([248, 254, 249, 253, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_gkc = A._setArrayType(makeConstList([B.List_Mic3, B.List_AsR, B.List_n3E1]), type$.JSArray_List_int); B.List_q8u3 = A._setArrayType(makeConstList([255, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_Mic4 = A._setArrayType(makeConstList([246, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_02 = A._setArrayType(makeConstList([252, 254, 251, 254, 254, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_03 = A._setArrayType(makeConstList([B.List_q8u3, B.List_Mic4, B.List_02]), type$.JSArray_List_int); B.List_mXg4 = A._setArrayType(makeConstList([255, 254, 252, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_n3E2 = A._setArrayType(makeConstList([248, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_m9F = A._setArrayType(makeConstList([253, 255, 254, 254, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_C3E = A._setArrayType(makeConstList([B.List_mXg4, B.List_n3E2, B.List_m9F]), type$.JSArray_List_int); B.List_wX42 = A._setArrayType(makeConstList([255, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_wX43 = A._setArrayType(makeConstList([245, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_wX44 = A._setArrayType(makeConstList([253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_swR = A._setArrayType(makeConstList([B.List_wX42, B.List_wX43, B.List_wX44]), type$.JSArray_List_int); B.List_q8u4 = A._setArrayType(makeConstList([255, 251, 253, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_U8c3 = A._setArrayType(makeConstList([252, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_uQV = A._setArrayType(makeConstList([B.List_q8u4, B.List_U8c3, B.List_H37]), type$.JSArray_List_int); B.List_H373 = A._setArrayType(makeConstList([255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_wX45 = A._setArrayType(makeConstList([249, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_wX46 = A._setArrayType(makeConstList([255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_46y = A._setArrayType(makeConstList([B.List_H373, B.List_wX45, B.List_wX46]), type$.JSArray_List_int); B.List_q8u5 = A._setArrayType(makeConstList([255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); B.List_yzJ0 = A._setArrayType(makeConstList([B.List_q8u5, B.List_Mic2, B.List_q8u]), type$.JSArray_List_int); B.List_88p = A._setArrayType(makeConstList([B.List_gkc, B.List_03, B.List_C3E, B.List_swR, B.List_uQV, B.List_46y, B.List_yzJ0, B.List_yzJ]), type$.JSArray_List_List_int); B.List_MIe = A._setArrayType(makeConstList([B.List_uwP, B.List_Crw, B.List_QcX, B.List_88p]), type$.JSArray_List_List_List_int); B.List_NUU = A._setArrayType(makeConstList([0, 1, 2, 3, 4, 5, 6, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28]), type$.JSArray_int); B.List_Qw3 = A._setArrayType(makeConstList([0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095]), type$.JSArray_int); B.List_2Vk0 = A._setArrayType(makeConstList([128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]), type$.JSArray_int); B.List_gkc0 = A._setArrayType(makeConstList([B.List_2Vk0, B.List_2Vk0, B.List_2Vk0]), type$.JSArray_List_int); B.List_cdS = A._setArrayType(makeConstList([253, 136, 254, 255, 228, 219, 128, 128, 128, 128, 128]), type$.JSArray_int); B.List_app = A._setArrayType(makeConstList([189, 129, 242, 255, 227, 213, 255, 219, 128, 128, 128]), type$.JSArray_int); B.List_yFh = A._setArrayType(makeConstList([106, 126, 227, 252, 214, 209, 255, 255, 128, 128, 128]), type$.JSArray_int); B.List_y5k = A._setArrayType(makeConstList([B.List_cdS, B.List_app, B.List_yFh]), type$.JSArray_List_int); B.List_INA = A._setArrayType(makeConstList([1, 98, 248, 255, 236, 226, 255, 255, 128, 128, 128]), type$.JSArray_int); B.List_e4d = A._setArrayType(makeConstList([181, 133, 238, 254, 221, 234, 255, 154, 128, 128, 128]), type$.JSArray_int); B.List_app0 = A._setArrayType(makeConstList([78, 134, 202, 247, 198, 180, 255, 219, 128, 128, 128]), type$.JSArray_int); B.List_iLh = A._setArrayType(makeConstList([B.List_INA, B.List_e4d, B.List_app0]), type$.JSArray_List_int); B.List_MOR = A._setArrayType(makeConstList([1, 185, 249, 255, 243, 255, 128, 128, 128, 128, 128]), type$.JSArray_int); B.List_iUw = A._setArrayType(makeConstList([184, 150, 247, 255, 236, 224, 128, 128, 128, 128, 128]), type$.JSArray_int); B.List_Eba = A._setArrayType(makeConstList([77, 110, 216, 255, 236, 230, 128, 128, 128, 128, 128]), type$.JSArray_int); B.List_VS7 = A._setArrayType(makeConstList([B.List_MOR, B.List_iUw, B.List_Eba]), type$.JSArray_List_int); B.List_MOR0 = A._setArrayType(makeConstList([1, 101, 251, 255, 241, 255, 128, 128, 128, 128, 128]), type$.JSArray_int); B.List_wnc = A._setArrayType(makeConstList([170, 139, 241, 252, 236, 209, 255, 255, 128, 128, 128]), type$.JSArray_int); B.List_XwU = A._setArrayType(makeConstList([37, 116, 196, 243, 228, 255, 255, 255, 128, 128, 128]), type$.JSArray_int); B.List_HTJ = A._setArrayType(makeConstList([B.List_MOR0, B.List_wnc, B.List_XwU]), type$.JSArray_List_int); B.List_1yC = A._setArrayType(makeConstList([1, 204, 254, 255, 245, 255, 128, 128, 128, 128, 128]), type$.JSArray_int); B.List_Eba0 = A._setArrayType(makeConstList([207, 160, 250, 255, 238, 128, 128, 128, 128, 128, 128]), type$.JSArray_int); B.List_iUw0 = A._setArrayType(makeConstList([102, 103, 231, 255, 211, 171, 128, 128, 128, 128, 128]), type$.JSArray_int); B.List_4QF = A._setArrayType(makeConstList([B.List_1yC, B.List_Eba0, B.List_iUw0]), type$.JSArray_List_int); B.List_uXo = A._setArrayType(makeConstList([1, 152, 252, 255, 240, 255, 128, 128, 128, 128, 128]), type$.JSArray_int); B.List_iUw1 = A._setArrayType(makeConstList([177, 135, 243, 255, 234, 225, 128, 128, 128, 128, 128]), type$.JSArray_int); B.List_Eba1 = A._setArrayType(makeConstList([80, 129, 211, 255, 194, 224, 128, 128, 128, 128, 128]), type$.JSArray_int); B.List_8Pu = A._setArrayType(makeConstList([B.List_uXo, B.List_iUw1, B.List_Eba1]), type$.JSArray_List_int); B.List_2hT = A._setArrayType(makeConstList([1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128]), type$.JSArray_int); B.List_2hT0 = A._setArrayType(makeConstList([246, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128]), type$.JSArray_int); B.List_10r = A._setArrayType(makeConstList([255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]), type$.JSArray_int); B.List_Snu = A._setArrayType(makeConstList([B.List_2hT, B.List_2hT0, B.List_10r]), type$.JSArray_List_int); B.List_23h0 = A._setArrayType(makeConstList([B.List_gkc0, B.List_y5k, B.List_iLh, B.List_VS7, B.List_HTJ, B.List_4QF, B.List_8Pu, B.List_Snu]), type$.JSArray_List_List_int); B.List_2hT1 = A._setArrayType(makeConstList([198, 35, 237, 223, 193, 187, 162, 160, 145, 155, 62]), type$.JSArray_int); B.List_2Vk1 = A._setArrayType(makeConstList([131, 45, 198, 221, 172, 176, 220, 157, 252, 221, 1]), type$.JSArray_int); B.List_kOG = A._setArrayType(makeConstList([68, 47, 146, 208, 149, 167, 221, 162, 255, 223, 128]), type$.JSArray_int); B.List_BDr = A._setArrayType(makeConstList([B.List_2hT1, B.List_2Vk1, B.List_kOG]), type$.JSArray_List_int); B.List_qNA = A._setArrayType(makeConstList([1, 149, 241, 255, 221, 224, 255, 255, 128, 128, 128]), type$.JSArray_int); B.List_app1 = A._setArrayType(makeConstList([184, 141, 234, 253, 222, 220, 255, 199, 128, 128, 128]), type$.JSArray_int); B.List_kr3 = A._setArrayType(makeConstList([81, 99, 181, 242, 176, 190, 249, 202, 255, 255, 128]), type$.JSArray_int); B.List_Hcu = A._setArrayType(makeConstList([B.List_qNA, B.List_app1, B.List_kr3]), type$.JSArray_List_int); B.List_oqK = A._setArrayType(makeConstList([1, 129, 232, 253, 214, 197, 242, 196, 255, 255, 128]), type$.JSArray_int); B.List_e4d0 = A._setArrayType(makeConstList([99, 121, 210, 250, 201, 198, 255, 202, 128, 128, 128]), type$.JSArray_int); B.List_kr30 = A._setArrayType(makeConstList([23, 91, 163, 242, 170, 187, 247, 210, 255, 255, 128]), type$.JSArray_int); B.List_zAX = A._setArrayType(makeConstList([B.List_oqK, B.List_e4d0, B.List_kr30]), type$.JSArray_List_int); B.List_uXo0 = A._setArrayType(makeConstList([1, 200, 246, 255, 234, 255, 128, 128, 128, 128, 128]), type$.JSArray_int); B.List_YAl = A._setArrayType(makeConstList([109, 178, 241, 255, 231, 245, 255, 255, 128, 128, 128]), type$.JSArray_int); B.List_INA0 = A._setArrayType(makeConstList([44, 130, 201, 253, 205, 192, 255, 255, 128, 128, 128]), type$.JSArray_int); B.List_QOg = A._setArrayType(makeConstList([B.List_uXo0, B.List_YAl, B.List_INA0]), type$.JSArray_List_int); B.List_niO = A._setArrayType(makeConstList([1, 132, 239, 251, 219, 209, 255, 165, 128, 128, 128]), type$.JSArray_int); B.List_INA1 = A._setArrayType(makeConstList([94, 136, 225, 251, 218, 190, 255, 255, 128, 128, 128]), type$.JSArray_int); B.List_app2 = A._setArrayType(makeConstList([22, 100, 174, 245, 186, 161, 255, 199, 128, 128, 128]), type$.JSArray_int); B.List_i7r = A._setArrayType(makeConstList([B.List_niO, B.List_INA1, B.List_app2]), type$.JSArray_List_int); B.List_xw8 = A._setArrayType(makeConstList([1, 182, 249, 255, 232, 235, 128, 128, 128, 128, 128]), type$.JSArray_int); B.List_iUw2 = A._setArrayType(makeConstList([124, 143, 241, 255, 227, 234, 128, 128, 128, 128, 128]), type$.JSArray_int); B.List_app3 = A._setArrayType(makeConstList([35, 77, 181, 251, 193, 211, 255, 205, 128, 128, 128]), type$.JSArray_int); B.List_sQ3 = A._setArrayType(makeConstList([B.List_xw8, B.List_iUw2, B.List_app3]), type$.JSArray_List_int); B.List_UkC = A._setArrayType(makeConstList([1, 157, 247, 255, 236, 231, 255, 255, 128, 128, 128]), type$.JSArray_int); B.List_qNA0 = A._setArrayType(makeConstList([121, 141, 235, 255, 225, 227, 255, 255, 128, 128, 128]), type$.JSArray_int); B.List_app4 = A._setArrayType(makeConstList([45, 99, 188, 251, 195, 217, 255, 224, 128, 128, 128]), type$.JSArray_int); B.List_ACG = A._setArrayType(makeConstList([B.List_UkC, B.List_qNA0, B.List_app4]), type$.JSArray_List_int); B.List_xw80 = A._setArrayType(makeConstList([1, 1, 251, 255, 213, 255, 128, 128, 128, 128, 128]), type$.JSArray_int); B.List_e3N = A._setArrayType(makeConstList([203, 1, 248, 255, 255, 128, 128, 128, 128, 128, 128]), type$.JSArray_int); B.List_uXo1 = A._setArrayType(makeConstList([137, 1, 177, 255, 224, 255, 128, 128, 128, 128, 128]), type$.JSArray_int); B.List_UMT = A._setArrayType(makeConstList([B.List_xw80, B.List_e3N, B.List_uXo1]), type$.JSArray_List_int); B.List_IJC = A._setArrayType(makeConstList([B.List_BDr, B.List_Hcu, B.List_zAX, B.List_QOg, B.List_i7r, B.List_sQ3, B.List_ACG, B.List_UMT]), type$.JSArray_List_List_int); B.List_oyU = A._setArrayType(makeConstList([253, 9, 248, 251, 207, 208, 255, 192, 128, 128, 128]), type$.JSArray_int); B.List_fnl = A._setArrayType(makeConstList([175, 13, 224, 243, 193, 185, 249, 198, 255, 255, 128]), type$.JSArray_int); B.List_kOG0 = A._setArrayType(makeConstList([73, 17, 171, 221, 161, 179, 236, 167, 255, 234, 128]), type$.JSArray_int); B.List_04 = A._setArrayType(makeConstList([B.List_oyU, B.List_fnl, B.List_kOG0]), type$.JSArray_List_int); B.List_qNA1 = A._setArrayType(makeConstList([1, 95, 247, 253, 212, 183, 255, 255, 128, 128, 128]), type$.JSArray_int); B.List_qph = A._setArrayType(makeConstList([239, 90, 244, 250, 211, 209, 255, 255, 128, 128, 128]), type$.JSArray_int); B.List_yFh0 = A._setArrayType(makeConstList([155, 77, 195, 248, 188, 195, 255, 255, 128, 128, 128]), type$.JSArray_int); B.List_S0k = A._setArrayType(makeConstList([B.List_qNA1, B.List_qph, B.List_yFh0]), type$.JSArray_List_int); B.List_niO0 = A._setArrayType(makeConstList([1, 24, 239, 251, 218, 219, 255, 205, 128, 128, 128]), type$.JSArray_int); B.List_Eba2 = A._setArrayType(makeConstList([201, 51, 219, 255, 196, 186, 128, 128, 128, 128, 128]), type$.JSArray_int); B.List_app5 = A._setArrayType(makeConstList([69, 46, 190, 239, 201, 218, 255, 228, 128, 128, 128]), type$.JSArray_int); B.List_gfn = A._setArrayType(makeConstList([B.List_niO0, B.List_Eba2, B.List_app5]), type$.JSArray_List_int); B.List_8eb = A._setArrayType(makeConstList([1, 191, 251, 255, 255, 128, 128, 128, 128, 128, 128]), type$.JSArray_int); B.List_xw81 = A._setArrayType(makeConstList([223, 165, 249, 255, 213, 255, 128, 128, 128, 128, 128]), type$.JSArray_int); B.List_e3N0 = A._setArrayType(makeConstList([141, 124, 248, 255, 255, 128, 128, 128, 128, 128, 128]), type$.JSArray_int); B.List_EJ0 = A._setArrayType(makeConstList([B.List_8eb, B.List_xw81, B.List_e3N0]), type$.JSArray_List_int); B.List_e3N1 = A._setArrayType(makeConstList([1, 16, 248, 255, 255, 128, 128, 128, 128, 128, 128]), type$.JSArray_int); B.List_uXo2 = A._setArrayType(makeConstList([190, 36, 230, 255, 236, 255, 128, 128, 128, 128, 128]), type$.JSArray_int); B.List_2hT2 = A._setArrayType(makeConstList([149, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128]), type$.JSArray_int); B.List_WtZ = A._setArrayType(makeConstList([B.List_e3N1, B.List_uXo2, B.List_2hT2]), type$.JSArray_List_int); B.List_2hT3 = A._setArrayType(makeConstList([1, 226, 255, 128, 128, 128, 128, 128, 128, 128, 128]), type$.JSArray_int); B.List_Jio = A._setArrayType(makeConstList([247, 192, 255, 128, 128, 128, 128, 128, 128, 128, 128]), type$.JSArray_int); B.List_2hT4 = A._setArrayType(makeConstList([240, 128, 255, 128, 128, 128, 128, 128, 128, 128, 128]), type$.JSArray_int); B.List_wsa = A._setArrayType(makeConstList([B.List_2hT3, B.List_Jio, B.List_2hT4]), type$.JSArray_List_int); B.List_e3N2 = A._setArrayType(makeConstList([1, 134, 252, 255, 255, 128, 128, 128, 128, 128, 128]), type$.JSArray_int); B.List_e3N3 = A._setArrayType(makeConstList([213, 62, 250, 255, 255, 128, 128, 128, 128, 128, 128]), type$.JSArray_int); B.List_2hT5 = A._setArrayType(makeConstList([55, 93, 255, 128, 128, 128, 128, 128, 128, 128, 128]), type$.JSArray_int); B.List_OBP = A._setArrayType(makeConstList([B.List_e3N2, B.List_e3N3, B.List_2hT5]), type$.JSArray_List_int); B.List_Net = A._setArrayType(makeConstList([B.List_04, B.List_S0k, B.List_gfn, B.List_EJ0, B.List_WtZ, B.List_wsa, B.List_OBP, B.List_gkc0]), type$.JSArray_List_List_int); B.List_ZEx = A._setArrayType(makeConstList([202, 24, 213, 235, 186, 191, 220, 160, 240, 175, 255]), type$.JSArray_int); B.List_kOG1 = A._setArrayType(makeConstList([126, 38, 182, 232, 169, 184, 228, 174, 255, 187, 128]), type$.JSArray_int); B.List_kOG2 = A._setArrayType(makeConstList([61, 46, 138, 219, 151, 178, 240, 170, 255, 216, 128]), type$.JSArray_int); B.List_wsa0 = A._setArrayType(makeConstList([B.List_ZEx, B.List_kOG1, B.List_kOG2]), type$.JSArray_List_int); B.List_kr31 = A._setArrayType(makeConstList([1, 112, 230, 250, 199, 191, 247, 159, 255, 255, 128]), type$.JSArray_int); B.List_e4d1 = A._setArrayType(makeConstList([166, 109, 228, 252, 211, 215, 255, 174, 128, 128, 128]), type$.JSArray_int); B.List_kr32 = A._setArrayType(makeConstList([39, 77, 162, 232, 172, 180, 245, 178, 255, 255, 128]), type$.JSArray_int); B.List_UaZ = A._setArrayType(makeConstList([B.List_kr31, B.List_e4d1, B.List_kr32]), type$.JSArray_List_int); B.List_kr33 = A._setArrayType(makeConstList([1, 52, 220, 246, 198, 199, 249, 220, 255, 255, 128]), type$.JSArray_int); B.List_oqK0 = A._setArrayType(makeConstList([124, 74, 191, 243, 183, 193, 250, 221, 255, 255, 128]), type$.JSArray_int); B.List_kr34 = A._setArrayType(makeConstList([24, 71, 130, 219, 154, 170, 243, 182, 255, 255, 128]), type$.JSArray_int); B.List_i09 = A._setArrayType(makeConstList([B.List_kr33, B.List_oqK0, B.List_kr34]), type$.JSArray_List_int); B.List_app6 = A._setArrayType(makeConstList([1, 182, 225, 249, 219, 240, 255, 224, 128, 128, 128]), type$.JSArray_int); B.List_e4d2 = A._setArrayType(makeConstList([149, 150, 226, 252, 216, 205, 255, 171, 128, 128, 128]), type$.JSArray_int); B.List_XT3 = A._setArrayType(makeConstList([28, 108, 170, 242, 183, 194, 254, 223, 255, 255, 128]), type$.JSArray_int); B.List_OIF = A._setArrayType(makeConstList([B.List_app6, B.List_e4d2, B.List_XT3]), type$.JSArray_List_int); B.List_e4d3 = A._setArrayType(makeConstList([1, 81, 230, 252, 204, 203, 255, 192, 128, 128, 128]), type$.JSArray_int); B.List_INA2 = A._setArrayType(makeConstList([123, 102, 209, 247, 188, 196, 255, 233, 128, 128, 128]), type$.JSArray_int); B.List_app7 = A._setArrayType(makeConstList([20, 95, 153, 243, 164, 173, 255, 203, 128, 128, 128]), type$.JSArray_int); B.List_CKI = A._setArrayType(makeConstList([B.List_e4d3, B.List_INA2, B.List_app7]), type$.JSArray_List_int); B.List_Eba3 = A._setArrayType(makeConstList([1, 222, 248, 255, 216, 213, 128, 128, 128, 128, 128]), type$.JSArray_int); B.List_IVU = A._setArrayType(makeConstList([168, 175, 246, 252, 235, 205, 255, 255, 128, 128, 128]), type$.JSArray_int); B.List_INA3 = A._setArrayType(makeConstList([47, 116, 215, 255, 211, 212, 255, 255, 128, 128, 128]), type$.JSArray_int); B.List_SnA = A._setArrayType(makeConstList([B.List_Eba3, B.List_IVU, B.List_INA3]), type$.JSArray_List_int); B.List_INA4 = A._setArrayType(makeConstList([1, 121, 236, 253, 212, 214, 255, 255, 128, 128, 128]), type$.JSArray_int); B.List_e4d4 = A._setArrayType(makeConstList([141, 84, 213, 252, 201, 202, 255, 219, 128, 128, 128]), type$.JSArray_int); B.List_e4d5 = A._setArrayType(makeConstList([42, 80, 160, 240, 162, 185, 255, 205, 128, 128, 128]), type$.JSArray_int); B.List_xw82 = A._setArrayType(makeConstList([B.List_INA4, B.List_e4d4, B.List_e4d5]), type$.JSArray_List_int); B.List_2hT6 = A._setArrayType(makeConstList([244, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128]), type$.JSArray_int); B.List_2hT7 = A._setArrayType(makeConstList([238, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128]), type$.JSArray_int); B.List_Q1p0 = A._setArrayType(makeConstList([B.List_2hT, B.List_2hT6, B.List_2hT7]), type$.JSArray_List_int); B.List_uLM = A._setArrayType(makeConstList([B.List_wsa0, B.List_UaZ, B.List_i09, B.List_OIF, B.List_CKI, B.List_SnA, B.List_xw82, B.List_Q1p0]), type$.JSArray_List_List_int); B.List_S8N = A._setArrayType(makeConstList([B.List_23h0, B.List_IJC, B.List_Net, B.List_uLM]), type$.JSArray_List_List_List_int); B.List_UiL = A._setArrayType(makeConstList([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]), type$.JSArray_int); B.List_VSP = A._setArrayType(makeConstList([6430, 6400, 6400, 6400, 3225, 3225, 3225, 3225, 944, 944, 944, 944, 976, 976, 976, 976, 1456, 1456, 1456, 1456, 1488, 1488, 1488, 1488, 718, 718, 718, 718, 718, 718, 718, 718, 750, 750, 750, 750, 750, 750, 750, 750, 1520, 1520, 1520, 1520, 1552, 1552, 1552, 1552, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 654, 654, 654, 654, 654, 654, 654, 654, 1072, 1072, 1072, 1072, 1104, 1104, 1104, 1104, 1136, 1136, 1136, 1136, 1168, 1168, 1168, 1168, 1200, 1200, 1200, 1200, 1232, 1232, 1232, 1232, 622, 622, 622, 622, 622, 622, 622, 622, 1008, 1008, 1008, 1008, 1040, 1040, 1040, 1040, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 1712, 1712, 1712, 1712, 1744, 1744, 1744, 1744, 846, 846, 846, 846, 846, 846, 846, 846, 1264, 1264, 1264, 1264, 1296, 1296, 1296, 1296, 1328, 1328, 1328, 1328, 1360, 1360, 1360, 1360, 1392, 1392, 1392, 1392, 1424, 1424, 1424, 1424, 686, 686, 686, 686, 686, 686, 686, 686, 910, 910, 910, 910, 910, 910, 910, 910, 1968, 1968, 1968, 1968, 2000, 2000, 2000, 2000, 2032, 2032, 2032, 2032, 16, 16, 16, 16, 10257, 10257, 10257, 10257, 12305, 12305, 12305, 12305, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 878, 878, 878, 878, 878, 878, 878, 878, 1904, 1904, 1904, 1904, 1936, 1936, 1936, 1936, -18413, -18413, -16365, -16365, -14317, -14317, -10221, -10221, 590, 590, 590, 590, 590, 590, 590, 590, 782, 782, 782, 782, 782, 782, 782, 782, 1584, 1584, 1584, 1584, 1616, 1616, 1616, 1616, 1648, 1648, 1648, 1648, 1680, 1680, 1680, 1680, 814, 814, 814, 814, 814, 814, 814, 814, 1776, 1776, 1776, 1776, 1808, 1808, 1808, 1808, 1840, 1840, 1840, 1840, 1872, 1872, 1872, 1872, 6157, 6157, 6157, 6157, 6157, 6157, 6157, 6157, 6157, 6157, 6157, 6157, 6157, 6157, 6157, 6157, -12275, -12275, -12275, -12275, -12275, -12275, -12275, -12275, -12275, -12275, -12275, -12275, -12275, -12275, -12275, -12275, 14353, 14353, 14353, 14353, 16401, 16401, 16401, 16401, 22547, 22547, 24595, 24595, 20497, 20497, 20497, 20497, 18449, 18449, 18449, 18449, 26643, 26643, 28691, 28691, 30739, 30739, -32749, -32749, -30701, -30701, -28653, -28653, -26605, -26605, -24557, -24557, -22509, -22509, -20461, -20461, 8207, 8207, 8207, 8207, 8207, 8207, 8207, 8207, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232]), type$.JSArray_int); B.List_VvJ = A._setArrayType(makeConstList([0, -128, 64, -64, 32, -96, 96, -32, 16, -112, 80, -48, 48, -80, 112, -16, 8, -120, 72, -56, 40, -88, 104, -24, 24, -104, 88, -40, 56, -72, 120, -8, 4, -124, 68, -60, 36, -92, 100, -28, 20, -108, 84, -44, 52, -76, 116, -12, 12, -116, 76, -52, 44, -84, 108, -20, 28, -100, 92, -36, 60, -68, 124, -4, 2, -126, 66, -62, 34, -94, 98, -30, 18, -110, 82, -46, 50, -78, 114, -14, 10, -118, 74, -54, 42, -86, 106, -22, 26, -102, 90, -38, 58, -70, 122, -6, 6, -122, 70, -58, 38, -90, 102, -26, 22, -106, 86, -42, 54, -74, 118, -10, 14, -114, 78, -50, 46, -82, 110, -18, 30, -98, 94, -34, 62, -66, 126, -2, 1, -127, 65, -63, 33, -95, 97, -31, 17, -111, 81, -47, 49, -79, 113, -15, 9, -119, 73, -55, 41, -87, 105, -23, 25, -103, 89, -39, 57, -71, 121, -7, 5, -123, 69, -59, 37, -91, 101, -27, 21, -107, 85, -43, 53, -75, 117, -11, 13, -115, 77, -51, 45, -83, 109, -19, 29, -99, 93, -35, 61, -67, 125, -3, 3, -125, 67, -61, 35, -93, 99, -29, 19, -109, 83, -45, 51, -77, 115, -13, 11, -117, 75, -53, 43, -85, 107, -21, 27, -101, 91, -37, 59, -69, 123, -5, 7, -121, 71, -57, 39, -89, 103, -25, 23, -105, 87, -41, 55, -73, 119, -9, 15, -113, 79, -49, 47, -81, 111, -17, 31, -97, 95, -33, 63, -65, 127, -1]), type$.JSArray_int); B.List_X3d0 = A._setArrayType(makeConstList([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]), type$.JSArray_int); B.List_X3d1 = A._setArrayType(makeConstList([0, 1, 2, 3, 4, 6, 8, 12, 16, 24, 32, 48, 64, 96, 128, 192, 256, 384, 512, 768, 1024, 1536, 2048, 3072, 4096, 6144, 8192, 12288, 16384, 24576]), type$.JSArray_int); B.List_X3d = A._setArrayType(makeConstList([5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]), type$.JSArray_int); B.List_Xg4 = A._setArrayType(makeConstList([12, 8, 140, 8, 76, 8, 204, 8, 44, 8, 172, 8, 108, 8, 236, 8, 28, 8, 156, 8, 92, 8, 220, 8, 60, 8, 188, 8, 124, 8, 252, 8, 2, 8, 130, 8, 66, 8, 194, 8, 34, 8, 162, 8, 98, 8, 226, 8, 18, 8, 146, 8, 82, 8, 210, 8, 50, 8, 178, 8, 114, 8, 242, 8, 10, 8, 138, 8, 74, 8, 202, 8, 42, 8, 170, 8, 106, 8, 234, 8, 26, 8, 154, 8, 90, 8, 218, 8, 58, 8, 186, 8, 122, 8, 250, 8, 6, 8, 134, 8, 70, 8, 198, 8, 38, 8, 166, 8, 102, 8, 230, 8, 22, 8, 150, 8, 86, 8, 214, 8, 54, 8, 182, 8, 118, 8, 246, 8, 14, 8, 142, 8, 78, 8, 206, 8, 46, 8, 174, 8, 110, 8, 238, 8, 30, 8, 158, 8, 94, 8, 222, 8, 62, 8, 190, 8, 126, 8, 254, 8, 1, 8, 129, 8, 65, 8, 193, 8, 33, 8, 161, 8, 97, 8, 225, 8, 17, 8, 145, 8, 81, 8, 209, 8, 49, 8, 177, 8, 113, 8, 241, 8, 9, 8, 137, 8, 73, 8, 201, 8, 41, 8, 169, 8, 105, 8, 233, 8, 25, 8, 153, 8, 89, 8, 217, 8, 57, 8, 185, 8, 121, 8, 249, 8, 5, 8, 133, 8, 69, 8, 197, 8, 37, 8, 165, 8, 101, 8, 229, 8, 21, 8, 149, 8, 85, 8, 213, 8, 53, 8, 181, 8, 117, 8, 245, 8, 13, 8, 141, 8, 77, 8, 205, 8, 45, 8, 173, 8, 109, 8, 237, 8, 29, 8, 157, 8, 93, 8, 221, 8, 61, 8, 189, 8, 125, 8, 253, 8, 19, 9, 275, 9, 147, 9, 403, 9, 83, 9, 339, 9, 211, 9, 467, 9, 51, 9, 307, 9, 179, 9, 435, 9, 115, 9, 371, 9, 243, 9, 499, 9, 11, 9, 267, 9, 139, 9, 395, 9, 75, 9, 331, 9, 203, 9, 459, 9, 43, 9, 299, 9, 171, 9, 427, 9, 107, 9, 363, 9, 235, 9, 491, 9, 27, 9, 283, 9, 155, 9, 411, 9, 91, 9, 347, 9, 219, 9, 475, 9, 59, 9, 315, 9, 187, 9, 443, 9, 123, 9, 379, 9, 251, 9, 507, 9, 7, 9, 263, 9, 135, 9, 391, 9, 71, 9, 327, 9, 199, 9, 455, 9, 39, 9, 295, 9, 167, 9, 423, 9, 103, 9, 359, 9, 231, 9, 487, 9, 23, 9, 279, 9, 151, 9, 407, 9, 87, 9, 343, 9, 215, 9, 471, 9, 55, 9, 311, 9, 183, 9, 439, 9, 119, 9, 375, 9, 247, 9, 503, 9, 15, 9, 271, 9, 143, 9, 399, 9, 79, 9, 335, 9, 207, 9, 463, 9, 47, 9, 303, 9, 175, 9, 431, 9, 111, 9, 367, 9, 239, 9, 495, 9, 31, 9, 287, 9, 159, 9, 415, 9, 95, 9, 351, 9, 223, 9, 479, 9, 63, 9, 319, 9, 191, 9, 447, 9, 127, 9, 383, 9, 255, 9, 511, 9, 0, 7, 64, 7, 32, 7, 96, 7, 16, 7, 80, 7, 48, 7, 112, 7, 8, 7, 72, 7, 40, 7, 104, 7, 24, 7, 88, 7, 56, 7, 120, 7, 4, 7, 68, 7, 36, 7, 100, 7, 20, 7, 84, 7, 52, 7, 116, 7, 3, 8, 131, 8, 67, 8, 195, 8, 35, 8, 163, 8, 99, 8, 227, 8]), type$.JSArray_int); B.List_0_0_0 = A._setArrayType(makeConstList([0, 0, 0]), type$.JSArray_num); B.List_Z3F = A._setArrayType(makeConstList([B.List_0_0_0, B.List_0_0_0, B.List_0_0_0]), type$.JSArray_List_num); B.List_sgE = A._setArrayType(makeConstList([0.375, 1, 0]), type$.JSArray_num); B.List_sgE0 = A._setArrayType(makeConstList([0.375, 0, 1]), type$.JSArray_num); B.List_sgE1 = A._setArrayType(makeConstList([0.25, 1, 1]), type$.JSArray_num); B.List_Z3F0 = A._setArrayType(makeConstList([B.List_sgE, B.List_sgE0, B.List_sgE1]), type$.JSArray_List_num); B.List_sgE2 = A._setArrayType(makeConstList([0.4375, 1, 0]), type$.JSArray_num); B.List_rb5 = A._setArrayType(makeConstList([0.1875, -1, 1]), type$.JSArray_num); B.List_sgE3 = A._setArrayType(makeConstList([0.3125, 0, 1]), type$.JSArray_num); B.List_sgE4 = A._setArrayType(makeConstList([0.0625, 1, 1]), type$.JSArray_num); B.List_iVk = A._setArrayType(makeConstList([B.List_sgE2, B.List_rb5, B.List_sgE3, B.List_sgE4]), type$.JSArray_List_num); B.List_sgE5 = A._setArrayType(makeConstList([0.19047619047619047, 1, 0]), type$.JSArray_num); B.List_sgE6 = A._setArrayType(makeConstList([0.09523809523809523, 2, 0]), type$.JSArray_num); B.List_mOq = A._setArrayType(makeConstList([0.047619047619047616, -2, 1]), type$.JSArray_num); B.List_rb50 = A._setArrayType(makeConstList([0.09523809523809523, -1, 1]), type$.JSArray_num); B.List_sgE7 = A._setArrayType(makeConstList([0.19047619047619047, 0, 1]), type$.JSArray_num); B.List_sgE8 = A._setArrayType(makeConstList([0.09523809523809523, 1, 1]), type$.JSArray_num); B.List_1YD = A._setArrayType(makeConstList([0.047619047619047616, 2, 1]), type$.JSArray_num); B.List_ifL = A._setArrayType(makeConstList([0.023809523809523808, -2, 2]), type$.JSArray_num); B.List_Sc1 = A._setArrayType(makeConstList([0.047619047619047616, -1, 2]), type$.JSArray_num); B.List_sgE9 = A._setArrayType(makeConstList([0.09523809523809523, 0, 2]), type$.JSArray_num); B.List_1YD0 = A._setArrayType(makeConstList([0.047619047619047616, 1, 2]), type$.JSArray_num); B.List_af2 = A._setArrayType(makeConstList([0.023809523809523808, 2, 2]), type$.JSArray_num); B.List_wAg = A._setArrayType(makeConstList([B.List_sgE5, B.List_sgE6, B.List_mOq, B.List_rb50, B.List_sgE7, B.List_sgE8, B.List_1YD, B.List_ifL, B.List_Sc1, B.List_sgE9, B.List_1YD0, B.List_af2]), type$.JSArray_List_num); B.List_sgE10 = A._setArrayType(makeConstList([0.125, 1, 0]), type$.JSArray_num); B.List_sgE11 = A._setArrayType(makeConstList([0.125, 2, 0]), type$.JSArray_num); B.List_rb51 = A._setArrayType(makeConstList([0.125, -1, 1]), type$.JSArray_num); B.List_sgE12 = A._setArrayType(makeConstList([0.125, 0, 1]), type$.JSArray_num); B.List_sgE13 = A._setArrayType(makeConstList([0.125, 1, 1]), type$.JSArray_num); B.List_sgE14 = A._setArrayType(makeConstList([0.125, 0, 2]), type$.JSArray_num); B.List_qpd = A._setArrayType(makeConstList([B.List_sgE10, B.List_sgE11, B.List_rb51, B.List_sgE12, B.List_sgE13, B.List_sgE14]), type$.JSArray_List_num); B.List_Y2m = A._setArrayType(makeConstList([B.List_Z3F, B.List_Z3F0, B.List_iVk, B.List_wAg, B.List_qpd]), A.findType("JSArray>>")); B.List_Y3m = A._setArrayType(makeConstList([-0.0, 1, -1, 2, -2, 3, 4, 6, -3, 5, -4, -5, -6, 7, -7, 8, -8, -9]), type$.JSArray_int); B.List_cGl1 = A._setArrayType(makeConstList([0, 1, 4, 8, 5, 2, 3, 6, 9, 12, 13, 10, 7, 11, 14, 15]), type$.JSArray_int); B.List_cGl0 = A._setArrayType(makeConstList([0, 4, 8, 12, 128, 132, 136, 140, 256, 260, 264, 268, 384, 388, 392, 396]), type$.JSArray_int); B.List_cGl = A._setArrayType(makeConstList([0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15]), type$.JSArray_int); B.List_eea = A._setArrayType(makeConstList([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, 0, 0]), type$.JSArray_int); B.List_empty = A._setArrayType(makeConstList([]), type$.JSArray_dynamic); B.List_i3t = A._setArrayType(makeConstList([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]), type$.JSArray_int); B.List_iYO = A._setArrayType(makeConstList([0, 5, 16, 5, 8, 5, 24, 5, 4, 5, 20, 5, 12, 5, 28, 5, 2, 5, 18, 5, 10, 5, 26, 5, 6, 5, 22, 5, 14, 5, 30, 5, 1, 5, 17, 5, 9, 5, 25, 5, 5, 5, 21, 5, 13, 5, 29, 5, 3, 5, 19, 5, 11, 5, 27, 5, 7, 5, 23, 5]), type$.JSArray_int); B.List_kcl = A._setArrayType(makeConstList([0, 1, 5, 6, 14, 15, 27, 28, 2, 4, 7, 13, 16, 26, 29, 42, 3, 8, 12, 17, 25, 30, 41, 43, 9, 11, 18, 24, 31, 40, 44, 53, 10, 19, 23, 32, 39, 45, 52, 54, 20, 22, 33, 38, 46, 51, 55, 60, 21, 34, 37, 47, 50, 56, 59, 61, 35, 36, 48, 49, 57, 58, 62, 63]), type$.JSArray_int); B.List_kcl0 = A._setArrayType(makeConstList([16, 11, 10, 16, 24, 40, 51, 61, 12, 12, 14, 19, 26, 58, 60, 55, 14, 13, 16, 24, 40, 57, 69, 56, 14, 17, 22, 29, 51, 87, 80, 62, 18, 22, 37, 56, 68, 109, 103, 77, 24, 35, 55, 64, 81, 104, 113, 92, 49, 64, 78, 87, 103, 121, 120, 101, 72, 92, 95, 98, 112, 100, 103, 99]), type$.JSArray_int); B.List_kcl1 = A._setArrayType(makeConstList([17, 18, 24, 47, 99, 99, 99, 99, 18, 21, 26, 66, 99, 99, 99, 99, 24, 26, 56, 99, 99, 99, 99, 99, 47, 66, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99]), type$.JSArray_int); B.List_knt = A._setArrayType(makeConstList([0, 1, 3, 7, 15, 31, 63, 127, 255]), type$.JSArray_int); B.List_knt0 = A._setArrayType(makeConstList([0, 128, 192, 224, 240, 248, 252, 254, 255]), type$.JSArray_int); B.List_mC8 = A._setArrayType(makeConstList([0, 1, 1, 2, 4, 8, 1, 1, 2, 4, 8, 4, 8]), type$.JSArray_int); B.List_nLG = A._setArrayType(makeConstList([62, 62, 30, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 588, 588, 588, 588, 588, 588, 588, 588, 1680, 1680, 20499, 22547, 24595, 26643, 1776, 1776, 1808, 1808, -24557, -22509, -20461, -18413, 1904, 1904, 1936, 1936, -16365, -14317, 782, 782, 782, 782, 814, 814, 814, 814, -12269, -10221, 10257, 10257, 12305, 12305, 14353, 14353, 16403, 18451, 1712, 1712, 1744, 1744, 28691, 30739, -32749, -30701, -28653, -26605, 2061, 2061, 2061, 2061, 2061, 2061, 2061, 2061, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 750, 750, 750, 750, 1616, 1616, 1648, 1648, 1424, 1424, 1456, 1456, 1488, 1488, 1520, 1520, 1840, 1840, 1872, 1872, 1968, 1968, 8209, 8209, 524, 524, 524, 524, 524, 524, 524, 524, 556, 556, 556, 556, 556, 556, 556, 556, 1552, 1552, 1584, 1584, 2000, 2000, 2032, 2032, 976, 976, 1008, 1008, 1040, 1040, 1072, 1072, 1296, 1296, 1328, 1328, 718, 718, 718, 718, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 4113, 4113, 6161, 6161, 848, 848, 880, 880, 912, 912, 944, 944, 622, 622, 622, 622, 654, 654, 654, 654, 1104, 1104, 1136, 1136, 1168, 1168, 1200, 1200, 1232, 1232, 1264, 1264, 686, 686, 686, 686, 1360, 1360, 1392, 1392, 12, 12, 12, 12, 12, 12, 12, 12, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390]), type$.JSArray_int); B.List_qQn0 = A._setArrayType(makeConstList([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]), type$.JSArray_int); B.List_qQn1 = A._setArrayType(makeConstList([0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 0]), type$.JSArray_int); B.List_qQn = A._setArrayType(makeConstList([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]), type$.JSArray_int); B.List_173_148_140 = A._setArrayType(makeConstList([173, 148, 140]), type$.JSArray_int); B.List_176_155_140_135 = A._setArrayType(makeConstList([176, 155, 140, 135]), type$.JSArray_int); B.List_yTu0 = A._setArrayType(makeConstList([180, 157, 141, 134, 130]), type$.JSArray_int); B.List_2hT8 = A._setArrayType(makeConstList([254, 254, 243, 230, 196, 177, 153, 140, 133, 130, 129]), type$.JSArray_int); B.List_sao = A._setArrayType(makeConstList([B.List_173_148_140, B.List_176_155_140_135, B.List_yTu0, B.List_2hT8]), type$.JSArray_List_int); B.List_sty = A._setArrayType(makeConstList([A.vp8_filter_VP8Filter_DC4$closure(), A.vp8_filter_VP8Filter_TM4$closure(), A.vp8_filter_VP8Filter_VE4$closure(), A.vp8_filter_VP8Filter_HE4$closure(), A.vp8_filter_VP8Filter_RD4$closure(), A.vp8_filter_VP8Filter_VR4$closure(), A.vp8_filter_VP8Filter_LD4$closure(), A.vp8_filter_VP8Filter_VL4$closure(), A.vp8_filter_VP8Filter_HD4$closure(), A.vp8_filter_VP8Filter_HU4$closure()]), type$.JSArray_of_void_Function_InputBuffer); B.List_uRr = A._setArrayType(makeConstList([0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, 32767, 65535]), type$.JSArray_int); B.List_uSC1 = A._setArrayType(makeConstList([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7]), type$.JSArray_int); B.List_uSC = A._setArrayType(makeConstList([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]), type$.JSArray_int); B.List_uSC0 = A._setArrayType(makeConstList([17, 18, 0, 1, 2, 3, 4, 5, 16, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]), type$.JSArray_int); B.List_wmc = A._setArrayType(makeConstList([127, 127, 191, 127, 159, 191, 223, 127, 143, 159, 175, 191, 207, 223, 239, 127, 135, 143, 151, 159, 167, 175, 183, 191, 199, 207, 215, 223, 231, 239, 247, 127, 131, 135, 139, 143, 147, 151, 155, 159, 163, 167, 171, 175, 179, 183, 187, 191, 195, 199, 203, 207, 211, 215, 219, 223, 227, 231, 235, 239, 243, 247, 251, 127, 129, 131, 133, 135, 137, 139, 141, 143, 145, 147, 149, 151, 153, 155, 157, 159, 161, 163, 165, 167, 169, 171, 173, 175, 177, 179, 181, 183, 185, 187, 189, 191, 193, 195, 197, 199, 201, 203, 205, 207, 209, 211, 213, 215, 217, 219, 221, 223, 225, 227, 229, 231, 233, 235, 237, 239, 241, 243, 245, 247, 249, 251, 253, 127]), type$.JSArray_int); B.List_yTu = A._setArrayType(makeConstList([280, 256, 256, 256, 40]), type$.JSArray_int); B.List_yYQ = A._setArrayType(makeConstList([0, 1, 1, 2, 4, 8, 1, 1, 2, 4, 8, 4, 8, 0]), type$.JSArray_int); B.List_61n = A._setArrayType(makeConstList(["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "#", "$", "%", "*", "+", ",", "-", ".", ":", ";", "=", "?", "@", "[", "]", "^", "_", "{", "|", "}", "~"]), type$.JSArray_String); B.Map_61Q1t = new A.ConstantStringMap(83, {"0": 0, "1": 1, "2": 2, "3": 3, "4": 4, "5": 5, "6": 6, "7": 7, "8": 8, "9": 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, G: 16, H: 17, I: 18, J: 19, K: 20, L: 21, M: 22, N: 23, O: 24, P: 25, Q: 26, R: 27, S: 28, T: 29, U: 30, V: 31, W: 32, X: 33, Y: 34, Z: 35, a: 36, b: 37, c: 38, d: 39, e: 40, f: 41, g: 42, h: 43, i: 44, j: 45, k: 46, l: 47, m: 48, n: 49, o: 50, p: 51, q: 52, r: 53, s: 54, t: 55, u: 56, v: 57, w: 58, x: 59, y: 60, z: 61, "#": 62, $: 63, "%": 64, "*": 65, "+": 66, ",": 67, "-": 68, ".": 69, ":": 70, ";": 71, "=": 72, "?": 73, "@": 74, "[": 75, "]": 76, "^": 77, _: 78, "{": 79, "|": 80, "}": 81, "~": 82}, B.List_61n, A.findType("ConstantStringMap")); B.Map_6zffn = new A.GeneralConstantMap([315, "artist", 258, "bitsPerSample", 265, "cellLength", 264, "cellWidth", 320, "colorMap", 259, "compression", 306, "dateTime", 34665, "exifIFD", 338, "extraSamples", 266, "fillOrder", 289, "freeByteCounts", 288, "freeOffsets", 291, "grayResponseCurve", 290, "grayResponseUnit", 316, "hostComputer", 34675, "iccProfile", 270, "imageDescription", 257, "imageLength", 256, "imageWidth", 33723, "iptc", 271, "make", 281, "maxSampleValue", 280, "minSampleValue", 272, "model", 254, "newSubfileType", 274, "orientation", 262, "photometricInterpretation", 34377, "photoshop", 284, "planarConfiguration", 317, "predictor", 296, "resolutionUnit", 278, "rowsPerStrip", 277, "samplesPerPixel", 305, "software", 279, "stripByteCounts", 273, "stropOffsets", 255, "subfileType", 292, "t4Options", 293, "t6Options", 263, "thresholding", 322, "tileWidth", 323, "tileLength", 324, "tileOffsets", 325, "tileByteCounts", 700, "xmp", 282, "xResolution", 283, "yResolution", 529, "yCbCrCoefficients", 530, "yCbCrSubsampling", 531, "yCbCrPositioning", 339, "sampleFormat"], A.findType("GeneralConstantMap")); B.List_empty0 = A._setArrayType(makeConstList([]), A.findType("JSArray")); B.Map_empty = new A.ConstantStringMap(0, {}, B.List_empty0, A.findType("ConstantStringMap")); B.Symbol_call = new A.Symbol("call"); B.Type_Object_xQ6 = A.typeLiteral("Object"); B.Utf8Decoder_true = new A.Utf8Decoder(true); B._IterationMarker_null_2 = new A._IterationMarker(null, 2); })(); (function staticFields() { $._JS_INTEROP_INTERCEPTOR_TAG = null; $.Primitives__identityHashCodeProperty = null; $.BoundClosure__receiverFieldNameCache = null; $.BoundClosure__interceptorFieldNameCache = null; $.getTagFunction = null; $.alternateTagFunction = null; $.prototypeForTagFunction = null; $.dispatchRecordsForInstanceTags = null; $.interceptorsForUncacheableTags = null; $.initNativeDispatchFlag = null; $._nextCallback = null; $._lastCallback = null; $._lastPriorityCallback = null; $._isInCallbackLoop = false; $.Zone__current = B.C__RootZone; $._toStringVisiting = A._setArrayType([], A.findType("JSArray")); $.Deflate____config = A._Cell$named("_config"); $._dctClip = null; $.VP8Filter__tablesInitialized = false; $.VP8LTransform_PREDICTORS = A._setArrayType([A.vp8l_transform_VP8LTransform__predictor0$closure(), A.vp8l_transform_VP8LTransform__predictor1$closure(), A.vp8l_transform_VP8LTransform__predictor2$closure(), A.vp8l_transform_VP8LTransform__predictor3$closure(), A.vp8l_transform_VP8LTransform__predictor4$closure(), A.vp8l_transform_VP8LTransform__predictor5$closure(), A.vp8l_transform_VP8LTransform__predictor6$closure(), A.vp8l_transform_VP8LTransform__predictor7$closure(), A.vp8l_transform_VP8LTransform__predictor8$closure(), A.vp8l_transform_VP8LTransform__predictor9$closure(), A.vp8l_transform_VP8LTransform__predictor10$closure(), A.vp8l_transform_VP8LTransform__predictor11$closure(), A.vp8l_transform_VP8LTransform__predictor12$closure(), A.vp8l_transform_VP8LTransform__predictor13$closure(), A.vp8l_transform_VP8LTransform__predictor0$closure(), A.vp8l_transform_VP8LTransform__predictor0$closure()], A.findType("JSArray")); $.Half__toFloatUint32 = null; $.Half__toFloatFloat32 = null; $.Half____eLut = A._Cell$named("_eLut"); })(); (function lazyInitializers() { var _lazyFinal = hunkHelpers.lazyFinal, _lazy = hunkHelpers.lazy; _lazyFinal($, "DART_CLOSURE_PROPERTY_NAME", "$get$DART_CLOSURE_PROPERTY_NAME", () => A.getIsolateAffinityTag("_$dart_dartClosure")); _lazyFinal($, "TypeErrorDecoder_noSuchMethodPattern", "$get$TypeErrorDecoder_noSuchMethodPattern", () => A.TypeErrorDecoder_extractPattern(A.TypeErrorDecoder_provokeCallErrorOn({ toString: function() { return "$receiver$"; } }))); _lazyFinal($, "TypeErrorDecoder_notClosurePattern", "$get$TypeErrorDecoder_notClosurePattern", () => A.TypeErrorDecoder_extractPattern(A.TypeErrorDecoder_provokeCallErrorOn({$method$: null, toString: function() { return "$receiver$"; } }))); _lazyFinal($, "TypeErrorDecoder_nullCallPattern", "$get$TypeErrorDecoder_nullCallPattern", () => A.TypeErrorDecoder_extractPattern(A.TypeErrorDecoder_provokeCallErrorOn(null))); _lazyFinal($, "TypeErrorDecoder_nullLiteralCallPattern", "$get$TypeErrorDecoder_nullLiteralCallPattern", () => A.TypeErrorDecoder_extractPattern(function() { var $argumentsExpr$ = "$arguments$"; try { null.$method$($argumentsExpr$); } catch (e) { return e.message; } }())); _lazyFinal($, "TypeErrorDecoder_undefinedCallPattern", "$get$TypeErrorDecoder_undefinedCallPattern", () => A.TypeErrorDecoder_extractPattern(A.TypeErrorDecoder_provokeCallErrorOn(void 0))); _lazyFinal($, "TypeErrorDecoder_undefinedLiteralCallPattern", "$get$TypeErrorDecoder_undefinedLiteralCallPattern", () => A.TypeErrorDecoder_extractPattern(function() { var $argumentsExpr$ = "$arguments$"; try { (void 0).$method$($argumentsExpr$); } catch (e) { return e.message; } }())); _lazyFinal($, "TypeErrorDecoder_nullPropertyPattern", "$get$TypeErrorDecoder_nullPropertyPattern", () => A.TypeErrorDecoder_extractPattern(A.TypeErrorDecoder_provokePropertyErrorOn(null))); _lazyFinal($, "TypeErrorDecoder_nullLiteralPropertyPattern", "$get$TypeErrorDecoder_nullLiteralPropertyPattern", () => A.TypeErrorDecoder_extractPattern(function() { try { null.$method$; } catch (e) { return e.message; } }())); _lazyFinal($, "TypeErrorDecoder_undefinedPropertyPattern", "$get$TypeErrorDecoder_undefinedPropertyPattern", () => A.TypeErrorDecoder_extractPattern(A.TypeErrorDecoder_provokePropertyErrorOn(void 0))); _lazyFinal($, "TypeErrorDecoder_undefinedLiteralPropertyPattern", "$get$TypeErrorDecoder_undefinedLiteralPropertyPattern", () => A.TypeErrorDecoder_extractPattern(function() { try { (void 0).$method$; } catch (e) { return e.message; } }())); _lazyFinal($, "_AsyncRun__scheduleImmediateClosure", "$get$_AsyncRun__scheduleImmediateClosure", () => A._AsyncRun__initializeScheduleImmediate()); _lazyFinal($, "Utf8Decoder__decoder", "$get$Utf8Decoder__decoder", () => new A.Utf8Decoder__decoder_closure().call$0()); _lazyFinal($, "Utf8Decoder__decoderNonfatal", "$get$Utf8Decoder__decoderNonfatal", () => new A.Utf8Decoder__decoderNonfatal_closure().call$0()); _lazyFinal($, "_hashSeed", "$get$_hashSeed", () => A.objectHashCode(B.Type_Object_xQ6)); _lazyFinal($, "_context", "$get$_context", () => A._wrapToDart(self)); _lazyFinal($, "_DART_OBJECT_PROPERTY_NAME", "$get$_DART_OBJECT_PROPERTY_NAME", () => A.getIsolateAffinityTag("_$dart_dartObject")); _lazyFinal($, "_dartProxyCtor", "$get$_dartProxyCtor", () => function DartObject(o) { this.o = o; }); _lazyFinal($, "_StaticTree_staticLDesc", "$get$_StaticTree_staticLDesc", () => A._StaticTree$(B.List_Xg4, B.List_qQn0, 257, 286, 15)); _lazyFinal($, "_StaticTree_staticDDesc", "$get$_StaticTree_staticDDesc", () => A._StaticTree$(B.List_iYO, B.List_X3d0, 0, 30, 15)); _lazyFinal($, "_StaticTree_staticBlDesc", "$get$_StaticTree_staticBlDesc", () => A._StaticTree$(null, B.List_uSC1, 0, 19, 7)); _lazy($, "VP8Filter_abs0", "$get$VP8Filter_abs0", () => A.NativeUint8List_NativeUint8List(511)); _lazy($, "VP8Filter_abs1", "$get$VP8Filter_abs1", () => A.NativeUint8List_NativeUint8List(511)); _lazy($, "VP8Filter_sclip1", "$get$VP8Filter_sclip1", () => A.NativeInt8List_NativeInt8List(2041)); _lazy($, "VP8Filter_sclip2", "$get$VP8Filter_sclip2", () => A.NativeInt8List_NativeInt8List(225)); _lazy($, "VP8Filter_clip1", "$get$VP8Filter_clip1", () => A.NativeUint8List_NativeUint8List(766)); _lazyFinal($, "__uint8", "$get$__uint8", () => A.NativeUint8List_NativeUint8List(1)); _lazyFinal($, "__uint8ToInt8", "$get$__uint8ToInt8", () => { var t1 = $.$get$__uint8().buffer; A._checkViewArguments(t1, 0, null); t1 = new Int8Array(t1, 0); return t1; }); _lazyFinal($, "__uint16", "$get$__uint16", () => A.NativeUint16List_NativeUint16List(1)); _lazyFinal($, "__uint16ToInt16", "$get$__uint16ToInt16", () => { var $length, t1 = $.$get$__uint16().buffer; A._checkViewArguments(t1, 0, null); $length = B.JSInt_methods._tdivFast$1(t1.byteLength - 0, 2); return new Int16Array(t1, 0, $length); }); _lazyFinal($, "__uint32", "$get$__uint32", () => A.NativeUint32List_NativeUint32List(1)); _lazyFinal($, "__uint32ToInt32", "$get$__uint32ToInt32", () => { var $length, t1 = $.$get$__uint32().buffer; A._checkViewArguments(t1, 0, null); $length = B.JSInt_methods._tdivFast$1(t1.byteLength - 0, 4); return new Int32Array(t1, 0, $length); }); _lazyFinal($, "__uint32ToFloat32", "$get$__uint32ToFloat32", () => A.Float32List_Float32List$view($.$get$__uint32().buffer)); _lazyFinal($, "__int32", "$get$__int32", () => A.NativeInt32List_NativeInt32List(1)); _lazyFinal($, "__int32ToUint32", "$get$__int32ToUint32", () => A.Uint32List_Uint32List$view($.$get$__int32().buffer, 0)); _lazyFinal($, "__float32", "$get$__float32", () => A.NativeFloat32List_NativeFloat32List(1)); _lazyFinal($, "__float32ToUint32", "$get$__float32ToUint32", () => A.Uint32List_Uint32List$view($.$get$__float32().buffer, 0)); _lazyFinal($, "__uint64", "$get$__uint64", () => A.Uint64List_Uint64List(1)); _lazyFinal($, "__uint64ToFloat64", "$get$__uint64ToFloat64", () => { var t1 = $.$get$__uint64(); return A.Float64List_Float64List$view(t1.get$buffer(t1)); }); _lazyFinal($, "Logs__singleton", "$get$Logs__singleton", () => new A.Logs(A._setArrayType([], A.findType("JSArray")))); })(); (function nativeSupport() { !function() { var intern = function(s) { var o = {}; o[s] = 1; return Object.keys(hunkHelpers.convertToFastObject(o))[0]; }; init.getIsolateTag = function(name) { return intern("___dart_" + name + init.isolateTag); }; var tableProperty = "___dart_isolate_tags_"; var usedProperties = Object[tableProperty] || (Object[tableProperty] = Object.create(null)); var rootProperty = "_ZxYxX"; for (var i = 0;; i++) { var property = intern(rootProperty + "_" + i + "_"); if (!(property in usedProperties)) { usedProperties[property] = 1; init.isolateTag = property; break; } } init.dispatchPropertyName = init.getIsolateTag("dispatch_record"); }(); hunkHelpers.setOrUpdateInterceptorsByTag({ArrayBuffer: J.Interceptor, WebGL: J.Interceptor, AnimationEffectReadOnly: J.JavaScriptObject, AnimationEffectTiming: J.JavaScriptObject, AnimationEffectTimingReadOnly: J.JavaScriptObject, AnimationTimeline: J.JavaScriptObject, AnimationWorkletGlobalScope: J.JavaScriptObject, AuthenticatorAssertionResponse: J.JavaScriptObject, AuthenticatorAttestationResponse: J.JavaScriptObject, AuthenticatorResponse: J.JavaScriptObject, BackgroundFetchFetch: J.JavaScriptObject, BackgroundFetchManager: J.JavaScriptObject, BackgroundFetchSettledFetch: J.JavaScriptObject, BarProp: J.JavaScriptObject, BarcodeDetector: J.JavaScriptObject, BluetoothRemoteGATTDescriptor: J.JavaScriptObject, Body: J.JavaScriptObject, BudgetState: J.JavaScriptObject, CacheStorage: J.JavaScriptObject, CanvasGradient: J.JavaScriptObject, CanvasPattern: J.JavaScriptObject, CanvasRenderingContext2D: J.JavaScriptObject, Client: J.JavaScriptObject, Clients: J.JavaScriptObject, CookieStore: J.JavaScriptObject, Coordinates: J.JavaScriptObject, Credential: J.JavaScriptObject, CredentialUserData: J.JavaScriptObject, CredentialsContainer: J.JavaScriptObject, Crypto: J.JavaScriptObject, CryptoKey: J.JavaScriptObject, CSS: J.JavaScriptObject, CSSVariableReferenceValue: J.JavaScriptObject, CustomElementRegistry: J.JavaScriptObject, DataTransfer: J.JavaScriptObject, DataTransferItem: J.JavaScriptObject, DeprecatedStorageInfo: J.JavaScriptObject, DeprecatedStorageQuota: J.JavaScriptObject, DeprecationReport: J.JavaScriptObject, DetectedBarcode: J.JavaScriptObject, DetectedFace: J.JavaScriptObject, DetectedText: J.JavaScriptObject, DeviceAcceleration: J.JavaScriptObject, DeviceRotationRate: J.JavaScriptObject, DirectoryEntry: J.JavaScriptObject, webkitFileSystemDirectoryEntry: J.JavaScriptObject, FileSystemDirectoryEntry: J.JavaScriptObject, DirectoryReader: J.JavaScriptObject, WebKitDirectoryReader: J.JavaScriptObject, webkitFileSystemDirectoryReader: J.JavaScriptObject, FileSystemDirectoryReader: J.JavaScriptObject, DocumentOrShadowRoot: J.JavaScriptObject, DocumentTimeline: J.JavaScriptObject, DOMError: J.JavaScriptObject, DOMImplementation: J.JavaScriptObject, Iterator: J.JavaScriptObject, DOMMatrix: J.JavaScriptObject, DOMMatrixReadOnly: J.JavaScriptObject, DOMParser: J.JavaScriptObject, DOMPoint: J.JavaScriptObject, DOMPointReadOnly: J.JavaScriptObject, DOMQuad: J.JavaScriptObject, DOMStringMap: J.JavaScriptObject, Entry: J.JavaScriptObject, webkitFileSystemEntry: J.JavaScriptObject, FileSystemEntry: J.JavaScriptObject, External: J.JavaScriptObject, FaceDetector: J.JavaScriptObject, FederatedCredential: J.JavaScriptObject, FileEntry: J.JavaScriptObject, webkitFileSystemFileEntry: J.JavaScriptObject, FileSystemFileEntry: J.JavaScriptObject, DOMFileSystem: J.JavaScriptObject, WebKitFileSystem: J.JavaScriptObject, webkitFileSystem: J.JavaScriptObject, FileSystem: J.JavaScriptObject, FontFace: J.JavaScriptObject, FontFaceSource: J.JavaScriptObject, FormData: J.JavaScriptObject, GamepadButton: J.JavaScriptObject, GamepadPose: J.JavaScriptObject, Geolocation: J.JavaScriptObject, Position: J.JavaScriptObject, GeolocationPosition: J.JavaScriptObject, Headers: J.JavaScriptObject, HTMLHyperlinkElementUtils: J.JavaScriptObject, IdleDeadline: J.JavaScriptObject, ImageBitmap: J.JavaScriptObject, ImageBitmapRenderingContext: J.JavaScriptObject, ImageCapture: J.JavaScriptObject, InputDeviceCapabilities: J.JavaScriptObject, IntersectionObserver: J.JavaScriptObject, IntersectionObserverEntry: J.JavaScriptObject, InterventionReport: J.JavaScriptObject, KeyframeEffect: J.JavaScriptObject, KeyframeEffectReadOnly: J.JavaScriptObject, MediaCapabilities: J.JavaScriptObject, MediaCapabilitiesInfo: J.JavaScriptObject, MediaDeviceInfo: J.JavaScriptObject, MediaError: J.JavaScriptObject, MediaKeyStatusMap: J.JavaScriptObject, MediaKeySystemAccess: J.JavaScriptObject, MediaKeys: J.JavaScriptObject, MediaKeysPolicy: J.JavaScriptObject, MediaMetadata: J.JavaScriptObject, MediaSession: J.JavaScriptObject, MediaSettingsRange: J.JavaScriptObject, MemoryInfo: J.JavaScriptObject, MessageChannel: J.JavaScriptObject, Metadata: J.JavaScriptObject, MutationObserver: J.JavaScriptObject, WebKitMutationObserver: J.JavaScriptObject, MutationRecord: J.JavaScriptObject, NavigationPreloadManager: J.JavaScriptObject, Navigator: J.JavaScriptObject, NavigatorAutomationInformation: J.JavaScriptObject, NavigatorConcurrentHardware: J.JavaScriptObject, NavigatorCookies: J.JavaScriptObject, NavigatorUserMediaError: J.JavaScriptObject, NodeFilter: J.JavaScriptObject, NodeIterator: J.JavaScriptObject, NonDocumentTypeChildNode: J.JavaScriptObject, NonElementParentNode: J.JavaScriptObject, NoncedElement: J.JavaScriptObject, OffscreenCanvasRenderingContext2D: J.JavaScriptObject, OverconstrainedError: J.JavaScriptObject, PaintRenderingContext2D: J.JavaScriptObject, PaintSize: J.JavaScriptObject, PaintWorkletGlobalScope: J.JavaScriptObject, PasswordCredential: J.JavaScriptObject, Path2D: J.JavaScriptObject, PaymentAddress: J.JavaScriptObject, PaymentInstruments: J.JavaScriptObject, PaymentManager: J.JavaScriptObject, PaymentResponse: J.JavaScriptObject, PerformanceEntry: J.JavaScriptObject, PerformanceLongTaskTiming: J.JavaScriptObject, PerformanceMark: J.JavaScriptObject, PerformanceMeasure: J.JavaScriptObject, PerformanceNavigation: J.JavaScriptObject, PerformanceNavigationTiming: J.JavaScriptObject, PerformanceObserver: J.JavaScriptObject, PerformanceObserverEntryList: J.JavaScriptObject, PerformancePaintTiming: J.JavaScriptObject, PerformanceResourceTiming: J.JavaScriptObject, PerformanceServerTiming: J.JavaScriptObject, PerformanceTiming: J.JavaScriptObject, Permissions: J.JavaScriptObject, PhotoCapabilities: J.JavaScriptObject, PositionError: J.JavaScriptObject, GeolocationPositionError: J.JavaScriptObject, Presentation: J.JavaScriptObject, PresentationReceiver: J.JavaScriptObject, PublicKeyCredential: J.JavaScriptObject, PushManager: J.JavaScriptObject, PushMessageData: J.JavaScriptObject, PushSubscription: J.JavaScriptObject, PushSubscriptionOptions: J.JavaScriptObject, Range: J.JavaScriptObject, RelatedApplication: J.JavaScriptObject, ReportBody: J.JavaScriptObject, ReportingObserver: J.JavaScriptObject, ResizeObserver: J.JavaScriptObject, ResizeObserverEntry: J.JavaScriptObject, RTCCertificate: J.JavaScriptObject, RTCIceCandidate: J.JavaScriptObject, mozRTCIceCandidate: J.JavaScriptObject, RTCLegacyStatsReport: J.JavaScriptObject, RTCRtpContributingSource: J.JavaScriptObject, RTCRtpReceiver: J.JavaScriptObject, RTCRtpSender: J.JavaScriptObject, RTCSessionDescription: J.JavaScriptObject, mozRTCSessionDescription: J.JavaScriptObject, RTCStatsResponse: J.JavaScriptObject, Screen: J.JavaScriptObject, ScrollState: J.JavaScriptObject, ScrollTimeline: J.JavaScriptObject, Selection: J.JavaScriptObject, SharedArrayBuffer: J.JavaScriptObject, SpeechRecognitionAlternative: J.JavaScriptObject, SpeechSynthesisVoice: J.JavaScriptObject, StaticRange: J.JavaScriptObject, StorageManager: J.JavaScriptObject, StyleMedia: J.JavaScriptObject, StylePropertyMap: J.JavaScriptObject, StylePropertyMapReadonly: J.JavaScriptObject, SyncManager: J.JavaScriptObject, TaskAttributionTiming: J.JavaScriptObject, TextDetector: J.JavaScriptObject, TextMetrics: J.JavaScriptObject, TrackDefault: J.JavaScriptObject, TreeWalker: J.JavaScriptObject, TrustedHTML: J.JavaScriptObject, TrustedScriptURL: J.JavaScriptObject, TrustedURL: J.JavaScriptObject, UnderlyingSourceBase: J.JavaScriptObject, URLSearchParams: J.JavaScriptObject, VRCoordinateSystem: J.JavaScriptObject, VRDisplayCapabilities: J.JavaScriptObject, VREyeParameters: J.JavaScriptObject, VRFrameData: J.JavaScriptObject, VRFrameOfReference: J.JavaScriptObject, VRPose: J.JavaScriptObject, VRStageBounds: J.JavaScriptObject, VRStageBoundsPoint: J.JavaScriptObject, VRStageParameters: J.JavaScriptObject, ValidityState: J.JavaScriptObject, VideoPlaybackQuality: J.JavaScriptObject, VideoTrack: J.JavaScriptObject, VTTRegion: J.JavaScriptObject, WindowClient: J.JavaScriptObject, WorkletAnimation: J.JavaScriptObject, WorkletGlobalScope: J.JavaScriptObject, XPathEvaluator: J.JavaScriptObject, XPathExpression: J.JavaScriptObject, XPathNSResolver: J.JavaScriptObject, XPathResult: J.JavaScriptObject, XMLSerializer: J.JavaScriptObject, XSLTProcessor: J.JavaScriptObject, Bluetooth: J.JavaScriptObject, BluetoothCharacteristicProperties: J.JavaScriptObject, BluetoothRemoteGATTServer: J.JavaScriptObject, BluetoothRemoteGATTService: J.JavaScriptObject, BluetoothUUID: J.JavaScriptObject, BudgetService: J.JavaScriptObject, Cache: J.JavaScriptObject, DOMFileSystemSync: J.JavaScriptObject, DirectoryEntrySync: J.JavaScriptObject, DirectoryReaderSync: J.JavaScriptObject, EntrySync: J.JavaScriptObject, FileEntrySync: J.JavaScriptObject, FileReaderSync: J.JavaScriptObject, FileWriterSync: J.JavaScriptObject, HTMLAllCollection: J.JavaScriptObject, Mojo: J.JavaScriptObject, MojoHandle: J.JavaScriptObject, MojoWatcher: J.JavaScriptObject, NFC: J.JavaScriptObject, PagePopupController: J.JavaScriptObject, Report: J.JavaScriptObject, Request: J.JavaScriptObject, Response: J.JavaScriptObject, SubtleCrypto: J.JavaScriptObject, USBAlternateInterface: J.JavaScriptObject, USBConfiguration: J.JavaScriptObject, USBDevice: J.JavaScriptObject, USBEndpoint: J.JavaScriptObject, USBInTransferResult: J.JavaScriptObject, USBInterface: J.JavaScriptObject, USBIsochronousInTransferPacket: J.JavaScriptObject, USBIsochronousInTransferResult: J.JavaScriptObject, USBIsochronousOutTransferPacket: J.JavaScriptObject, USBIsochronousOutTransferResult: J.JavaScriptObject, USBOutTransferResult: J.JavaScriptObject, WorkerLocation: J.JavaScriptObject, WorkerNavigator: J.JavaScriptObject, Worklet: J.JavaScriptObject, IDBCursor: J.JavaScriptObject, IDBCursorWithValue: J.JavaScriptObject, IDBFactory: J.JavaScriptObject, IDBIndex: J.JavaScriptObject, IDBObjectStore: J.JavaScriptObject, IDBObservation: J.JavaScriptObject, IDBObserver: J.JavaScriptObject, IDBObserverChanges: J.JavaScriptObject, SVGAngle: J.JavaScriptObject, SVGAnimatedAngle: J.JavaScriptObject, SVGAnimatedBoolean: J.JavaScriptObject, SVGAnimatedEnumeration: J.JavaScriptObject, SVGAnimatedInteger: J.JavaScriptObject, SVGAnimatedLength: J.JavaScriptObject, SVGAnimatedLengthList: J.JavaScriptObject, SVGAnimatedNumber: J.JavaScriptObject, SVGAnimatedNumberList: J.JavaScriptObject, SVGAnimatedPreserveAspectRatio: J.JavaScriptObject, SVGAnimatedRect: J.JavaScriptObject, SVGAnimatedString: J.JavaScriptObject, SVGAnimatedTransformList: J.JavaScriptObject, SVGMatrix: J.JavaScriptObject, SVGPoint: J.JavaScriptObject, SVGPreserveAspectRatio: J.JavaScriptObject, SVGRect: J.JavaScriptObject, SVGUnitTypes: J.JavaScriptObject, AudioListener: J.JavaScriptObject, AudioParam: J.JavaScriptObject, AudioTrack: J.JavaScriptObject, AudioWorkletGlobalScope: J.JavaScriptObject, AudioWorkletProcessor: J.JavaScriptObject, PeriodicWave: J.JavaScriptObject, WebGLActiveInfo: J.JavaScriptObject, ANGLEInstancedArrays: J.JavaScriptObject, ANGLE_instanced_arrays: J.JavaScriptObject, WebGLBuffer: J.JavaScriptObject, WebGLCanvas: J.JavaScriptObject, WebGLColorBufferFloat: J.JavaScriptObject, WebGLCompressedTextureASTC: J.JavaScriptObject, WebGLCompressedTextureATC: J.JavaScriptObject, WEBGL_compressed_texture_atc: J.JavaScriptObject, WebGLCompressedTextureETC1: J.JavaScriptObject, WEBGL_compressed_texture_etc1: J.JavaScriptObject, WebGLCompressedTextureETC: J.JavaScriptObject, WebGLCompressedTexturePVRTC: J.JavaScriptObject, WEBGL_compressed_texture_pvrtc: J.JavaScriptObject, WebGLCompressedTextureS3TC: J.JavaScriptObject, WEBGL_compressed_texture_s3tc: J.JavaScriptObject, WebGLCompressedTextureS3TCsRGB: J.JavaScriptObject, WebGLDebugRendererInfo: J.JavaScriptObject, WEBGL_debug_renderer_info: J.JavaScriptObject, WebGLDebugShaders: J.JavaScriptObject, WEBGL_debug_shaders: J.JavaScriptObject, WebGLDepthTexture: J.JavaScriptObject, WEBGL_depth_texture: J.JavaScriptObject, WebGLDrawBuffers: J.JavaScriptObject, WEBGL_draw_buffers: J.JavaScriptObject, EXTsRGB: J.JavaScriptObject, EXT_sRGB: J.JavaScriptObject, EXTBlendMinMax: J.JavaScriptObject, EXT_blend_minmax: J.JavaScriptObject, EXTColorBufferFloat: J.JavaScriptObject, EXTColorBufferHalfFloat: J.JavaScriptObject, EXTDisjointTimerQuery: J.JavaScriptObject, EXTDisjointTimerQueryWebGL2: J.JavaScriptObject, EXTFragDepth: J.JavaScriptObject, EXT_frag_depth: J.JavaScriptObject, EXTShaderTextureLOD: J.JavaScriptObject, EXT_shader_texture_lod: J.JavaScriptObject, EXTTextureFilterAnisotropic: J.JavaScriptObject, EXT_texture_filter_anisotropic: J.JavaScriptObject, WebGLFramebuffer: J.JavaScriptObject, WebGLGetBufferSubDataAsync: J.JavaScriptObject, WebGLLoseContext: J.JavaScriptObject, WebGLExtensionLoseContext: J.JavaScriptObject, WEBGL_lose_context: J.JavaScriptObject, OESElementIndexUint: J.JavaScriptObject, OES_element_index_uint: J.JavaScriptObject, OESStandardDerivatives: J.JavaScriptObject, OES_standard_derivatives: J.JavaScriptObject, OESTextureFloat: J.JavaScriptObject, OES_texture_float: J.JavaScriptObject, OESTextureFloatLinear: J.JavaScriptObject, OES_texture_float_linear: J.JavaScriptObject, OESTextureHalfFloat: J.JavaScriptObject, OES_texture_half_float: J.JavaScriptObject, OESTextureHalfFloatLinear: J.JavaScriptObject, OES_texture_half_float_linear: J.JavaScriptObject, OESVertexArrayObject: J.JavaScriptObject, OES_vertex_array_object: J.JavaScriptObject, WebGLProgram: J.JavaScriptObject, WebGLQuery: J.JavaScriptObject, WebGLRenderbuffer: J.JavaScriptObject, WebGLRenderingContext: J.JavaScriptObject, WebGL2RenderingContext: J.JavaScriptObject, WebGLSampler: J.JavaScriptObject, WebGLShader: J.JavaScriptObject, WebGLShaderPrecisionFormat: J.JavaScriptObject, WebGLSync: J.JavaScriptObject, WebGLTexture: J.JavaScriptObject, WebGLTimerQueryEXT: J.JavaScriptObject, WebGLTransformFeedback: J.JavaScriptObject, WebGLUniformLocation: J.JavaScriptObject, WebGLVertexArrayObject: J.JavaScriptObject, WebGLVertexArrayObjectOES: J.JavaScriptObject, WebGL2RenderingContextBase: J.JavaScriptObject, DataView: A.NativeTypedData, ArrayBufferView: A.NativeTypedData, Float32Array: A.NativeFloat32List, Float64Array: A.NativeFloat64List, Int16Array: A.NativeInt16List, Int32Array: A.NativeInt32List, Int8Array: A.NativeInt8List, Uint16Array: A.NativeUint16List, Uint32Array: A.NativeUint32List, Uint8ClampedArray: A.NativeUint8ClampedList, CanvasPixelArray: A.NativeUint8ClampedList, Uint8Array: A.NativeUint8List, HTMLAudioElement: A.HtmlElement, HTMLBRElement: A.HtmlElement, HTMLBaseElement: A.HtmlElement, HTMLBodyElement: A.HtmlElement, HTMLButtonElement: A.HtmlElement, HTMLCanvasElement: A.HtmlElement, HTMLContentElement: A.HtmlElement, HTMLDListElement: A.HtmlElement, HTMLDataElement: A.HtmlElement, HTMLDataListElement: A.HtmlElement, HTMLDetailsElement: A.HtmlElement, HTMLDialogElement: A.HtmlElement, HTMLDivElement: A.HtmlElement, HTMLEmbedElement: A.HtmlElement, HTMLFieldSetElement: A.HtmlElement, HTMLHRElement: A.HtmlElement, HTMLHeadElement: A.HtmlElement, HTMLHeadingElement: A.HtmlElement, HTMLHtmlElement: A.HtmlElement, HTMLIFrameElement: A.HtmlElement, HTMLImageElement: A.HtmlElement, HTMLInputElement: A.HtmlElement, HTMLLIElement: A.HtmlElement, HTMLLabelElement: A.HtmlElement, HTMLLegendElement: A.HtmlElement, HTMLLinkElement: A.HtmlElement, HTMLMapElement: A.HtmlElement, HTMLMediaElement: A.HtmlElement, HTMLMenuElement: A.HtmlElement, HTMLMetaElement: A.HtmlElement, HTMLMeterElement: A.HtmlElement, HTMLModElement: A.HtmlElement, HTMLOListElement: A.HtmlElement, HTMLObjectElement: A.HtmlElement, HTMLOptGroupElement: A.HtmlElement, HTMLOptionElement: A.HtmlElement, HTMLOutputElement: A.HtmlElement, HTMLParagraphElement: A.HtmlElement, HTMLParamElement: A.HtmlElement, HTMLPictureElement: A.HtmlElement, HTMLPreElement: A.HtmlElement, HTMLProgressElement: A.HtmlElement, HTMLQuoteElement: A.HtmlElement, HTMLScriptElement: A.HtmlElement, HTMLShadowElement: A.HtmlElement, HTMLSlotElement: A.HtmlElement, HTMLSourceElement: A.HtmlElement, HTMLSpanElement: A.HtmlElement, HTMLStyleElement: A.HtmlElement, HTMLTableCaptionElement: A.HtmlElement, HTMLTableCellElement: A.HtmlElement, HTMLTableDataCellElement: A.HtmlElement, HTMLTableHeaderCellElement: A.HtmlElement, HTMLTableColElement: A.HtmlElement, HTMLTableElement: A.HtmlElement, HTMLTableRowElement: A.HtmlElement, HTMLTableSectionElement: A.HtmlElement, HTMLTemplateElement: A.HtmlElement, HTMLTextAreaElement: A.HtmlElement, HTMLTimeElement: A.HtmlElement, HTMLTitleElement: A.HtmlElement, HTMLTrackElement: A.HtmlElement, HTMLUListElement: A.HtmlElement, HTMLUnknownElement: A.HtmlElement, HTMLVideoElement: A.HtmlElement, HTMLDirectoryElement: A.HtmlElement, HTMLFontElement: A.HtmlElement, HTMLFrameElement: A.HtmlElement, HTMLFrameSetElement: A.HtmlElement, HTMLMarqueeElement: A.HtmlElement, HTMLElement: A.HtmlElement, AccessibleNodeList: A.AccessibleNodeList, HTMLAnchorElement: A.AnchorElement, HTMLAreaElement: A.AreaElement, Blob: A.Blob, CDATASection: A.CharacterData, CharacterData: A.CharacterData, Comment: A.CharacterData, ProcessingInstruction: A.CharacterData, Text: A.CharacterData, CSSPerspective: A.CssPerspective, CSSCharsetRule: A.CssRule, CSSConditionRule: A.CssRule, CSSFontFaceRule: A.CssRule, CSSGroupingRule: A.CssRule, CSSImportRule: A.CssRule, CSSKeyframeRule: A.CssRule, MozCSSKeyframeRule: A.CssRule, WebKitCSSKeyframeRule: A.CssRule, CSSKeyframesRule: A.CssRule, MozCSSKeyframesRule: A.CssRule, WebKitCSSKeyframesRule: A.CssRule, CSSMediaRule: A.CssRule, CSSNamespaceRule: A.CssRule, CSSPageRule: A.CssRule, CSSRule: A.CssRule, CSSStyleRule: A.CssRule, CSSSupportsRule: A.CssRule, CSSViewportRule: A.CssRule, CSSStyleDeclaration: A.CssStyleDeclaration, MSStyleCSSProperties: A.CssStyleDeclaration, CSS2Properties: A.CssStyleDeclaration, CSSImageValue: A.CssStyleValue, CSSKeywordValue: A.CssStyleValue, CSSNumericValue: A.CssStyleValue, CSSPositionValue: A.CssStyleValue, CSSResourceValue: A.CssStyleValue, CSSUnitValue: A.CssStyleValue, CSSURLImageValue: A.CssStyleValue, CSSStyleValue: A.CssStyleValue, CSSMatrixComponent: A.CssTransformComponent, CSSRotation: A.CssTransformComponent, CSSScale: A.CssTransformComponent, CSSSkew: A.CssTransformComponent, CSSTranslation: A.CssTransformComponent, CSSTransformComponent: A.CssTransformComponent, CSSTransformValue: A.CssTransformValue, CSSUnparsedValue: A.CssUnparsedValue, DataTransferItemList: A.DataTransferItemList, DOMException: A.DomException, ClientRectList: A.DomRectList, DOMRectList: A.DomRectList, DOMRectReadOnly: A.DomRectReadOnly, DOMStringList: A.DomStringList, DOMTokenList: A.DomTokenList, SVGAElement: A.Element, SVGAnimateElement: A.Element, SVGAnimateMotionElement: A.Element, SVGAnimateTransformElement: A.Element, SVGAnimationElement: A.Element, SVGCircleElement: A.Element, SVGClipPathElement: A.Element, SVGDefsElement: A.Element, SVGDescElement: A.Element, SVGDiscardElement: A.Element, SVGEllipseElement: A.Element, SVGFEBlendElement: A.Element, SVGFEColorMatrixElement: A.Element, SVGFEComponentTransferElement: A.Element, SVGFECompositeElement: A.Element, SVGFEConvolveMatrixElement: A.Element, SVGFEDiffuseLightingElement: A.Element, SVGFEDisplacementMapElement: A.Element, SVGFEDistantLightElement: A.Element, SVGFEFloodElement: A.Element, SVGFEFuncAElement: A.Element, SVGFEFuncBElement: A.Element, SVGFEFuncGElement: A.Element, SVGFEFuncRElement: A.Element, SVGFEGaussianBlurElement: A.Element, SVGFEImageElement: A.Element, SVGFEMergeElement: A.Element, SVGFEMergeNodeElement: A.Element, SVGFEMorphologyElement: A.Element, SVGFEOffsetElement: A.Element, SVGFEPointLightElement: A.Element, SVGFESpecularLightingElement: A.Element, SVGFESpotLightElement: A.Element, SVGFETileElement: A.Element, SVGFETurbulenceElement: A.Element, SVGFilterElement: A.Element, SVGForeignObjectElement: A.Element, SVGGElement: A.Element, SVGGeometryElement: A.Element, SVGGraphicsElement: A.Element, SVGImageElement: A.Element, SVGLineElement: A.Element, SVGLinearGradientElement: A.Element, SVGMarkerElement: A.Element, SVGMaskElement: A.Element, SVGMetadataElement: A.Element, SVGPathElement: A.Element, SVGPatternElement: A.Element, SVGPolygonElement: A.Element, SVGPolylineElement: A.Element, SVGRadialGradientElement: A.Element, SVGRectElement: A.Element, SVGScriptElement: A.Element, SVGSetElement: A.Element, SVGStopElement: A.Element, SVGStyleElement: A.Element, SVGElement: A.Element, SVGSVGElement: A.Element, SVGSwitchElement: A.Element, SVGSymbolElement: A.Element, SVGTSpanElement: A.Element, SVGTextContentElement: A.Element, SVGTextElement: A.Element, SVGTextPathElement: A.Element, SVGTextPositioningElement: A.Element, SVGTitleElement: A.Element, SVGUseElement: A.Element, SVGViewElement: A.Element, SVGGradientElement: A.Element, SVGComponentTransferFunctionElement: A.Element, SVGFEDropShadowElement: A.Element, SVGMPathElement: A.Element, Element: A.Element, AbortPaymentEvent: A.Event, AnimationEvent: A.Event, AnimationPlaybackEvent: A.Event, ApplicationCacheErrorEvent: A.Event, BackgroundFetchClickEvent: A.Event, BackgroundFetchEvent: A.Event, BackgroundFetchFailEvent: A.Event, BackgroundFetchedEvent: A.Event, BeforeInstallPromptEvent: A.Event, BeforeUnloadEvent: A.Event, BlobEvent: A.Event, CanMakePaymentEvent: A.Event, ClipboardEvent: A.Event, CloseEvent: A.Event, CompositionEvent: A.Event, CustomEvent: A.Event, DeviceMotionEvent: A.Event, DeviceOrientationEvent: A.Event, ErrorEvent: A.Event, ExtendableEvent: A.Event, ExtendableMessageEvent: A.Event, FetchEvent: A.Event, FocusEvent: A.Event, FontFaceSetLoadEvent: A.Event, ForeignFetchEvent: A.Event, GamepadEvent: A.Event, HashChangeEvent: A.Event, InstallEvent: A.Event, KeyboardEvent: A.Event, MediaEncryptedEvent: A.Event, MediaKeyMessageEvent: A.Event, MediaQueryListEvent: A.Event, MediaStreamEvent: A.Event, MediaStreamTrackEvent: A.Event, MIDIConnectionEvent: A.Event, MIDIMessageEvent: A.Event, MouseEvent: A.Event, DragEvent: A.Event, MutationEvent: A.Event, NotificationEvent: A.Event, PageTransitionEvent: A.Event, PaymentRequestEvent: A.Event, PaymentRequestUpdateEvent: A.Event, PointerEvent: A.Event, PopStateEvent: A.Event, PresentationConnectionAvailableEvent: A.Event, PresentationConnectionCloseEvent: A.Event, ProgressEvent: A.Event, PromiseRejectionEvent: A.Event, PushEvent: A.Event, RTCDataChannelEvent: A.Event, RTCDTMFToneChangeEvent: A.Event, RTCPeerConnectionIceEvent: A.Event, RTCTrackEvent: A.Event, SecurityPolicyViolationEvent: A.Event, SensorErrorEvent: A.Event, SpeechRecognitionError: A.Event, SpeechRecognitionEvent: A.Event, SpeechSynthesisEvent: A.Event, StorageEvent: A.Event, SyncEvent: A.Event, TextEvent: A.Event, TouchEvent: A.Event, TrackEvent: A.Event, TransitionEvent: A.Event, WebKitTransitionEvent: A.Event, UIEvent: A.Event, VRDeviceEvent: A.Event, VRDisplayEvent: A.Event, VRSessionEvent: A.Event, WheelEvent: A.Event, MojoInterfaceRequestEvent: A.Event, ResourceProgressEvent: A.Event, USBConnectionEvent: A.Event, AudioProcessingEvent: A.Event, OfflineAudioCompletionEvent: A.Event, WebGLContextEvent: A.Event, Event: A.Event, InputEvent: A.Event, SubmitEvent: A.Event, AbsoluteOrientationSensor: A.EventTarget, Accelerometer: A.EventTarget, AccessibleNode: A.EventTarget, AmbientLightSensor: A.EventTarget, Animation: A.EventTarget, ApplicationCache: A.EventTarget, DOMApplicationCache: A.EventTarget, OfflineResourceList: A.EventTarget, BackgroundFetchRegistration: A.EventTarget, BatteryManager: A.EventTarget, BroadcastChannel: A.EventTarget, CanvasCaptureMediaStreamTrack: A.EventTarget, EventSource: A.EventTarget, FileReader: A.EventTarget, FontFaceSet: A.EventTarget, Gyroscope: A.EventTarget, XMLHttpRequest: A.EventTarget, XMLHttpRequestEventTarget: A.EventTarget, XMLHttpRequestUpload: A.EventTarget, LinearAccelerationSensor: A.EventTarget, Magnetometer: A.EventTarget, MediaDevices: A.EventTarget, MediaKeySession: A.EventTarget, MediaQueryList: A.EventTarget, MediaRecorder: A.EventTarget, MediaSource: A.EventTarget, MediaStream: A.EventTarget, MediaStreamTrack: A.EventTarget, MessagePort: A.EventTarget, MIDIAccess: A.EventTarget, MIDIInput: A.EventTarget, MIDIOutput: A.EventTarget, MIDIPort: A.EventTarget, NetworkInformation: A.EventTarget, Notification: A.EventTarget, OffscreenCanvas: A.EventTarget, OrientationSensor: A.EventTarget, PaymentRequest: A.EventTarget, Performance: A.EventTarget, PermissionStatus: A.EventTarget, PresentationAvailability: A.EventTarget, PresentationConnection: A.EventTarget, PresentationConnectionList: A.EventTarget, PresentationRequest: A.EventTarget, RelativeOrientationSensor: A.EventTarget, RemotePlayback: A.EventTarget, RTCDataChannel: A.EventTarget, DataChannel: A.EventTarget, RTCDTMFSender: A.EventTarget, RTCPeerConnection: A.EventTarget, webkitRTCPeerConnection: A.EventTarget, mozRTCPeerConnection: A.EventTarget, ScreenOrientation: A.EventTarget, Sensor: A.EventTarget, ServiceWorker: A.EventTarget, ServiceWorkerContainer: A.EventTarget, ServiceWorkerRegistration: A.EventTarget, SharedWorker: A.EventTarget, SpeechRecognition: A.EventTarget, SpeechSynthesis: A.EventTarget, SpeechSynthesisUtterance: A.EventTarget, VR: A.EventTarget, VRDevice: A.EventTarget, VRDisplay: A.EventTarget, VRSession: A.EventTarget, VisualViewport: A.EventTarget, WebSocket: A.EventTarget, Worker: A.EventTarget, WorkerPerformance: A.EventTarget, BluetoothDevice: A.EventTarget, BluetoothRemoteGATTCharacteristic: A.EventTarget, Clipboard: A.EventTarget, MojoInterfaceInterceptor: A.EventTarget, USB: A.EventTarget, IDBDatabase: A.EventTarget, IDBTransaction: A.EventTarget, AnalyserNode: A.EventTarget, RealtimeAnalyserNode: A.EventTarget, AudioBufferSourceNode: A.EventTarget, AudioDestinationNode: A.EventTarget, AudioNode: A.EventTarget, AudioScheduledSourceNode: A.EventTarget, AudioWorkletNode: A.EventTarget, BiquadFilterNode: A.EventTarget, ChannelMergerNode: A.EventTarget, AudioChannelMerger: A.EventTarget, ChannelSplitterNode: A.EventTarget, AudioChannelSplitter: A.EventTarget, ConstantSourceNode: A.EventTarget, ConvolverNode: A.EventTarget, DelayNode: A.EventTarget, DynamicsCompressorNode: A.EventTarget, GainNode: A.EventTarget, AudioGainNode: A.EventTarget, IIRFilterNode: A.EventTarget, MediaElementAudioSourceNode: A.EventTarget, MediaStreamAudioDestinationNode: A.EventTarget, MediaStreamAudioSourceNode: A.EventTarget, OscillatorNode: A.EventTarget, Oscillator: A.EventTarget, PannerNode: A.EventTarget, AudioPannerNode: A.EventTarget, webkitAudioPannerNode: A.EventTarget, ScriptProcessorNode: A.EventTarget, JavaScriptAudioNode: A.EventTarget, StereoPannerNode: A.EventTarget, WaveShaperNode: A.EventTarget, EventTarget: A.EventTarget, File: A.File, FileList: A.FileList, FileWriter: A.FileWriter, HTMLFormElement: A.FormElement, Gamepad: A.Gamepad, History: A.History, HTMLCollection: A.HtmlCollection, HTMLFormControlsCollection: A.HtmlCollection, HTMLOptionsCollection: A.HtmlCollection, ImageData: A.ImageData, Location: A.Location, MediaList: A.MediaList, MessageEvent: A.MessageEvent, MIDIInputMap: A.MidiInputMap, MIDIOutputMap: A.MidiOutputMap, MimeType: A.MimeType, MimeTypeArray: A.MimeTypeArray, Document: A.Node, DocumentFragment: A.Node, HTMLDocument: A.Node, ShadowRoot: A.Node, XMLDocument: A.Node, Attr: A.Node, DocumentType: A.Node, Node: A.Node, NodeList: A.NodeList, RadioNodeList: A.NodeList, Plugin: A.Plugin, PluginArray: A.PluginArray, RTCStatsReport: A.RtcStatsReport, HTMLSelectElement: A.SelectElement, SourceBuffer: A.SourceBuffer, SourceBufferList: A.SourceBufferList, SpeechGrammar: A.SpeechGrammar, SpeechGrammarList: A.SpeechGrammarList, SpeechRecognitionResult: A.SpeechRecognitionResult, Storage: A.Storage, CSSStyleSheet: A.StyleSheet, StyleSheet: A.StyleSheet, TextTrack: A.TextTrack, TextTrackCue: A.TextTrackCue, VTTCue: A.TextTrackCue, TextTrackCueList: A.TextTrackCueList, TextTrackList: A.TextTrackList, TimeRanges: A.TimeRanges, Touch: A.Touch, TouchList: A.TouchList, TrackDefaultList: A.TrackDefaultList, URL: A.Url, VideoTrackList: A.VideoTrackList, Window: A.Window, DOMWindow: A.Window, DedicatedWorkerGlobalScope: A.WorkerGlobalScope, ServiceWorkerGlobalScope: A.WorkerGlobalScope, SharedWorkerGlobalScope: A.WorkerGlobalScope, WorkerGlobalScope: A.WorkerGlobalScope, CSSRuleList: A._CssRuleList, ClientRect: A._DomRect, DOMRect: A._DomRect, GamepadList: A._GamepadList, NamedNodeMap: A._NamedNodeMap, MozNamedAttrMap: A._NamedNodeMap, SpeechRecognitionResultList: A._SpeechRecognitionResultList, StyleSheetList: A._StyleSheetList, IDBKeyRange: A.KeyRange, IDBOpenDBRequest: A.Request, IDBVersionChangeRequest: A.Request, IDBRequest: A.Request, IDBVersionChangeEvent: A.VersionChangeEvent, SVGLength: A.Length, SVGLengthList: A.LengthList, SVGNumber: A.Number, SVGNumberList: A.NumberList, SVGPointList: A.PointList, SVGStringList: A.StringList, SVGTransform: A.Transform, SVGTransformList: A.TransformList, AudioBuffer: A.AudioBuffer, AudioParamMap: A.AudioParamMap, AudioTrackList: A.AudioTrackList, AudioContext: A.BaseAudioContext, webkitAudioContext: A.BaseAudioContext, BaseAudioContext: A.BaseAudioContext, OfflineAudioContext: A.OfflineAudioContext}); hunkHelpers.setOrUpdateLeafTags({ArrayBuffer: true, WebGL: true, AnimationEffectReadOnly: true, AnimationEffectTiming: true, AnimationEffectTimingReadOnly: true, AnimationTimeline: true, AnimationWorkletGlobalScope: true, AuthenticatorAssertionResponse: true, AuthenticatorAttestationResponse: true, AuthenticatorResponse: true, BackgroundFetchFetch: true, BackgroundFetchManager: true, BackgroundFetchSettledFetch: true, BarProp: true, BarcodeDetector: true, BluetoothRemoteGATTDescriptor: true, Body: true, BudgetState: true, CacheStorage: true, CanvasGradient: true, CanvasPattern: true, CanvasRenderingContext2D: true, Client: true, Clients: true, CookieStore: true, Coordinates: true, Credential: true, CredentialUserData: true, CredentialsContainer: true, Crypto: true, CryptoKey: true, CSS: true, CSSVariableReferenceValue: true, CustomElementRegistry: true, DataTransfer: true, DataTransferItem: true, DeprecatedStorageInfo: true, DeprecatedStorageQuota: true, DeprecationReport: true, DetectedBarcode: true, DetectedFace: true, DetectedText: true, DeviceAcceleration: true, DeviceRotationRate: true, DirectoryEntry: true, webkitFileSystemDirectoryEntry: true, FileSystemDirectoryEntry: true, DirectoryReader: true, WebKitDirectoryReader: true, webkitFileSystemDirectoryReader: true, FileSystemDirectoryReader: true, DocumentOrShadowRoot: true, DocumentTimeline: true, DOMError: true, DOMImplementation: true, Iterator: true, DOMMatrix: true, DOMMatrixReadOnly: true, DOMParser: true, DOMPoint: true, DOMPointReadOnly: true, DOMQuad: true, DOMStringMap: true, Entry: true, webkitFileSystemEntry: true, FileSystemEntry: true, External: true, FaceDetector: true, FederatedCredential: true, FileEntry: true, webkitFileSystemFileEntry: true, FileSystemFileEntry: true, DOMFileSystem: true, WebKitFileSystem: true, webkitFileSystem: true, FileSystem: true, FontFace: true, FontFaceSource: true, FormData: true, GamepadButton: true, GamepadPose: true, Geolocation: true, Position: true, GeolocationPosition: true, Headers: true, HTMLHyperlinkElementUtils: true, IdleDeadline: true, ImageBitmap: true, ImageBitmapRenderingContext: true, ImageCapture: true, InputDeviceCapabilities: true, IntersectionObserver: true, IntersectionObserverEntry: true, InterventionReport: true, KeyframeEffect: true, KeyframeEffectReadOnly: true, MediaCapabilities: true, MediaCapabilitiesInfo: true, MediaDeviceInfo: true, MediaError: true, MediaKeyStatusMap: true, MediaKeySystemAccess: true, MediaKeys: true, MediaKeysPolicy: true, MediaMetadata: true, MediaSession: true, MediaSettingsRange: true, MemoryInfo: true, MessageChannel: true, Metadata: true, MutationObserver: true, WebKitMutationObserver: true, MutationRecord: true, NavigationPreloadManager: true, Navigator: true, NavigatorAutomationInformation: true, NavigatorConcurrentHardware: true, NavigatorCookies: true, NavigatorUserMediaError: true, NodeFilter: true, NodeIterator: true, NonDocumentTypeChildNode: true, NonElementParentNode: true, NoncedElement: true, OffscreenCanvasRenderingContext2D: true, OverconstrainedError: true, PaintRenderingContext2D: true, PaintSize: true, PaintWorkletGlobalScope: true, PasswordCredential: true, Path2D: true, PaymentAddress: true, PaymentInstruments: true, PaymentManager: true, PaymentResponse: true, PerformanceEntry: true, PerformanceLongTaskTiming: true, PerformanceMark: true, PerformanceMeasure: true, PerformanceNavigation: true, PerformanceNavigationTiming: true, PerformanceObserver: true, PerformanceObserverEntryList: true, PerformancePaintTiming: true, PerformanceResourceTiming: true, PerformanceServerTiming: true, PerformanceTiming: true, Permissions: true, PhotoCapabilities: true, PositionError: true, GeolocationPositionError: true, Presentation: true, PresentationReceiver: true, PublicKeyCredential: true, PushManager: true, PushMessageData: true, PushSubscription: true, PushSubscriptionOptions: true, Range: true, RelatedApplication: true, ReportBody: true, ReportingObserver: true, ResizeObserver: true, ResizeObserverEntry: true, RTCCertificate: true, RTCIceCandidate: true, mozRTCIceCandidate: true, RTCLegacyStatsReport: true, RTCRtpContributingSource: true, RTCRtpReceiver: true, RTCRtpSender: true, RTCSessionDescription: true, mozRTCSessionDescription: true, RTCStatsResponse: true, Screen: true, ScrollState: true, ScrollTimeline: true, Selection: true, SharedArrayBuffer: true, SpeechRecognitionAlternative: true, SpeechSynthesisVoice: true, StaticRange: true, StorageManager: true, StyleMedia: true, StylePropertyMap: true, StylePropertyMapReadonly: true, SyncManager: true, TaskAttributionTiming: true, TextDetector: true, TextMetrics: true, TrackDefault: true, TreeWalker: true, TrustedHTML: true, TrustedScriptURL: true, TrustedURL: true, UnderlyingSourceBase: true, URLSearchParams: true, VRCoordinateSystem: true, VRDisplayCapabilities: true, VREyeParameters: true, VRFrameData: true, VRFrameOfReference: true, VRPose: true, VRStageBounds: true, VRStageBoundsPoint: true, VRStageParameters: true, ValidityState: true, VideoPlaybackQuality: true, VideoTrack: true, VTTRegion: true, WindowClient: true, WorkletAnimation: true, WorkletGlobalScope: true, XPathEvaluator: true, XPathExpression: true, XPathNSResolver: true, XPathResult: true, XMLSerializer: true, XSLTProcessor: true, Bluetooth: true, BluetoothCharacteristicProperties: true, BluetoothRemoteGATTServer: true, BluetoothRemoteGATTService: true, BluetoothUUID: true, BudgetService: true, Cache: true, DOMFileSystemSync: true, DirectoryEntrySync: true, DirectoryReaderSync: true, EntrySync: true, FileEntrySync: true, FileReaderSync: true, FileWriterSync: true, HTMLAllCollection: true, Mojo: true, MojoHandle: true, MojoWatcher: true, NFC: true, PagePopupController: true, Report: true, Request: true, Response: true, SubtleCrypto: true, USBAlternateInterface: true, USBConfiguration: true, USBDevice: true, USBEndpoint: true, USBInTransferResult: true, USBInterface: true, USBIsochronousInTransferPacket: true, USBIsochronousInTransferResult: true, USBIsochronousOutTransferPacket: true, USBIsochronousOutTransferResult: true, USBOutTransferResult: true, WorkerLocation: true, WorkerNavigator: true, Worklet: true, IDBCursor: true, IDBCursorWithValue: true, IDBFactory: true, IDBIndex: true, IDBObjectStore: true, IDBObservation: true, IDBObserver: true, IDBObserverChanges: true, SVGAngle: true, SVGAnimatedAngle: true, SVGAnimatedBoolean: true, SVGAnimatedEnumeration: true, SVGAnimatedInteger: true, SVGAnimatedLength: true, SVGAnimatedLengthList: true, SVGAnimatedNumber: true, SVGAnimatedNumberList: true, SVGAnimatedPreserveAspectRatio: true, SVGAnimatedRect: true, SVGAnimatedString: true, SVGAnimatedTransformList: true, SVGMatrix: true, SVGPoint: true, SVGPreserveAspectRatio: true, SVGRect: true, SVGUnitTypes: true, AudioListener: true, AudioParam: true, AudioTrack: true, AudioWorkletGlobalScope: true, AudioWorkletProcessor: true, PeriodicWave: true, WebGLActiveInfo: true, ANGLEInstancedArrays: true, ANGLE_instanced_arrays: true, WebGLBuffer: true, WebGLCanvas: true, WebGLColorBufferFloat: true, WebGLCompressedTextureASTC: true, WebGLCompressedTextureATC: true, WEBGL_compressed_texture_atc: true, WebGLCompressedTextureETC1: true, WEBGL_compressed_texture_etc1: true, WebGLCompressedTextureETC: true, WebGLCompressedTexturePVRTC: true, WEBGL_compressed_texture_pvrtc: true, WebGLCompressedTextureS3TC: true, WEBGL_compressed_texture_s3tc: true, WebGLCompressedTextureS3TCsRGB: true, WebGLDebugRendererInfo: true, WEBGL_debug_renderer_info: true, WebGLDebugShaders: true, WEBGL_debug_shaders: true, WebGLDepthTexture: true, WEBGL_depth_texture: true, WebGLDrawBuffers: true, WEBGL_draw_buffers: true, EXTsRGB: true, EXT_sRGB: true, EXTBlendMinMax: true, EXT_blend_minmax: true, EXTColorBufferFloat: true, EXTColorBufferHalfFloat: true, EXTDisjointTimerQuery: true, EXTDisjointTimerQueryWebGL2: true, EXTFragDepth: true, EXT_frag_depth: true, EXTShaderTextureLOD: true, EXT_shader_texture_lod: true, EXTTextureFilterAnisotropic: true, EXT_texture_filter_anisotropic: true, WebGLFramebuffer: true, WebGLGetBufferSubDataAsync: true, WebGLLoseContext: true, WebGLExtensionLoseContext: true, WEBGL_lose_context: true, OESElementIndexUint: true, OES_element_index_uint: true, OESStandardDerivatives: true, OES_standard_derivatives: true, OESTextureFloat: true, OES_texture_float: true, OESTextureFloatLinear: true, OES_texture_float_linear: true, OESTextureHalfFloat: true, OES_texture_half_float: true, OESTextureHalfFloatLinear: true, OES_texture_half_float_linear: true, OESVertexArrayObject: true, OES_vertex_array_object: true, WebGLProgram: true, WebGLQuery: true, WebGLRenderbuffer: true, WebGLRenderingContext: true, WebGL2RenderingContext: true, WebGLSampler: true, WebGLShader: true, WebGLShaderPrecisionFormat: true, WebGLSync: true, WebGLTexture: true, WebGLTimerQueryEXT: true, WebGLTransformFeedback: true, WebGLUniformLocation: true, WebGLVertexArrayObject: true, WebGLVertexArrayObjectOES: true, WebGL2RenderingContextBase: true, DataView: true, ArrayBufferView: false, Float32Array: true, Float64Array: true, Int16Array: true, Int32Array: true, Int8Array: true, Uint16Array: true, Uint32Array: true, Uint8ClampedArray: true, CanvasPixelArray: true, Uint8Array: false, HTMLAudioElement: true, HTMLBRElement: true, HTMLBaseElement: true, HTMLBodyElement: true, HTMLButtonElement: true, HTMLCanvasElement: true, HTMLContentElement: true, HTMLDListElement: true, HTMLDataElement: true, HTMLDataListElement: true, HTMLDetailsElement: true, HTMLDialogElement: true, HTMLDivElement: true, HTMLEmbedElement: true, HTMLFieldSetElement: true, HTMLHRElement: true, HTMLHeadElement: true, HTMLHeadingElement: true, HTMLHtmlElement: true, HTMLIFrameElement: true, HTMLImageElement: true, HTMLInputElement: true, HTMLLIElement: true, HTMLLabelElement: true, HTMLLegendElement: true, HTMLLinkElement: true, HTMLMapElement: true, HTMLMediaElement: true, HTMLMenuElement: true, HTMLMetaElement: true, HTMLMeterElement: true, HTMLModElement: true, HTMLOListElement: true, HTMLObjectElement: true, HTMLOptGroupElement: true, HTMLOptionElement: true, HTMLOutputElement: true, HTMLParagraphElement: true, HTMLParamElement: true, HTMLPictureElement: true, HTMLPreElement: true, HTMLProgressElement: true, HTMLQuoteElement: true, HTMLScriptElement: true, HTMLShadowElement: true, HTMLSlotElement: true, HTMLSourceElement: true, HTMLSpanElement: true, HTMLStyleElement: true, HTMLTableCaptionElement: true, HTMLTableCellElement: true, HTMLTableDataCellElement: true, HTMLTableHeaderCellElement: true, HTMLTableColElement: true, HTMLTableElement: true, HTMLTableRowElement: true, HTMLTableSectionElement: true, HTMLTemplateElement: true, HTMLTextAreaElement: true, HTMLTimeElement: true, HTMLTitleElement: true, HTMLTrackElement: true, HTMLUListElement: true, HTMLUnknownElement: true, HTMLVideoElement: true, HTMLDirectoryElement: true, HTMLFontElement: true, HTMLFrameElement: true, HTMLFrameSetElement: true, HTMLMarqueeElement: true, HTMLElement: false, AccessibleNodeList: true, HTMLAnchorElement: true, HTMLAreaElement: true, Blob: false, CDATASection: true, CharacterData: true, Comment: true, ProcessingInstruction: true, Text: true, CSSPerspective: true, CSSCharsetRule: true, CSSConditionRule: true, CSSFontFaceRule: true, CSSGroupingRule: true, CSSImportRule: true, CSSKeyframeRule: true, MozCSSKeyframeRule: true, WebKitCSSKeyframeRule: true, CSSKeyframesRule: true, MozCSSKeyframesRule: true, WebKitCSSKeyframesRule: true, CSSMediaRule: true, CSSNamespaceRule: true, CSSPageRule: true, CSSRule: true, CSSStyleRule: true, CSSSupportsRule: true, CSSViewportRule: true, CSSStyleDeclaration: true, MSStyleCSSProperties: true, CSS2Properties: true, CSSImageValue: true, CSSKeywordValue: true, CSSNumericValue: true, CSSPositionValue: true, CSSResourceValue: true, CSSUnitValue: true, CSSURLImageValue: true, CSSStyleValue: false, CSSMatrixComponent: true, CSSRotation: true, CSSScale: true, CSSSkew: true, CSSTranslation: true, CSSTransformComponent: false, CSSTransformValue: true, CSSUnparsedValue: true, DataTransferItemList: true, DOMException: true, ClientRectList: true, DOMRectList: true, DOMRectReadOnly: false, DOMStringList: true, DOMTokenList: true, SVGAElement: true, SVGAnimateElement: true, SVGAnimateMotionElement: true, SVGAnimateTransformElement: true, SVGAnimationElement: true, SVGCircleElement: true, SVGClipPathElement: true, SVGDefsElement: true, SVGDescElement: true, SVGDiscardElement: true, SVGEllipseElement: true, SVGFEBlendElement: true, SVGFEColorMatrixElement: true, SVGFEComponentTransferElement: true, SVGFECompositeElement: true, SVGFEConvolveMatrixElement: true, SVGFEDiffuseLightingElement: true, SVGFEDisplacementMapElement: true, SVGFEDistantLightElement: true, SVGFEFloodElement: true, SVGFEFuncAElement: true, SVGFEFuncBElement: true, SVGFEFuncGElement: true, SVGFEFuncRElement: true, SVGFEGaussianBlurElement: true, SVGFEImageElement: true, SVGFEMergeElement: true, SVGFEMergeNodeElement: true, SVGFEMorphologyElement: true, SVGFEOffsetElement: true, SVGFEPointLightElement: true, SVGFESpecularLightingElement: true, SVGFESpotLightElement: true, SVGFETileElement: true, SVGFETurbulenceElement: true, SVGFilterElement: true, SVGForeignObjectElement: true, SVGGElement: true, SVGGeometryElement: true, SVGGraphicsElement: true, SVGImageElement: true, SVGLineElement: true, SVGLinearGradientElement: true, SVGMarkerElement: true, SVGMaskElement: true, SVGMetadataElement: true, SVGPathElement: true, SVGPatternElement: true, SVGPolygonElement: true, SVGPolylineElement: true, SVGRadialGradientElement: true, SVGRectElement: true, SVGScriptElement: true, SVGSetElement: true, SVGStopElement: true, SVGStyleElement: true, SVGElement: true, SVGSVGElement: true, SVGSwitchElement: true, SVGSymbolElement: true, SVGTSpanElement: true, SVGTextContentElement: true, SVGTextElement: true, SVGTextPathElement: true, SVGTextPositioningElement: true, SVGTitleElement: true, SVGUseElement: true, SVGViewElement: true, SVGGradientElement: true, SVGComponentTransferFunctionElement: true, SVGFEDropShadowElement: true, SVGMPathElement: true, Element: false, AbortPaymentEvent: true, AnimationEvent: true, AnimationPlaybackEvent: true, ApplicationCacheErrorEvent: true, BackgroundFetchClickEvent: true, BackgroundFetchEvent: true, BackgroundFetchFailEvent: true, BackgroundFetchedEvent: true, BeforeInstallPromptEvent: true, BeforeUnloadEvent: true, BlobEvent: true, CanMakePaymentEvent: true, ClipboardEvent: true, CloseEvent: true, CompositionEvent: true, CustomEvent: true, DeviceMotionEvent: true, DeviceOrientationEvent: true, ErrorEvent: true, ExtendableEvent: true, ExtendableMessageEvent: true, FetchEvent: true, FocusEvent: true, FontFaceSetLoadEvent: true, ForeignFetchEvent: true, GamepadEvent: true, HashChangeEvent: true, InstallEvent: true, KeyboardEvent: true, MediaEncryptedEvent: true, MediaKeyMessageEvent: true, MediaQueryListEvent: true, MediaStreamEvent: true, MediaStreamTrackEvent: true, MIDIConnectionEvent: true, MIDIMessageEvent: true, MouseEvent: true, DragEvent: true, MutationEvent: true, NotificationEvent: true, PageTransitionEvent: true, PaymentRequestEvent: true, PaymentRequestUpdateEvent: true, PointerEvent: true, PopStateEvent: true, PresentationConnectionAvailableEvent: true, PresentationConnectionCloseEvent: true, ProgressEvent: true, PromiseRejectionEvent: true, PushEvent: true, RTCDataChannelEvent: true, RTCDTMFToneChangeEvent: true, RTCPeerConnectionIceEvent: true, RTCTrackEvent: true, SecurityPolicyViolationEvent: true, SensorErrorEvent: true, SpeechRecognitionError: true, SpeechRecognitionEvent: true, SpeechSynthesisEvent: true, StorageEvent: true, SyncEvent: true, TextEvent: true, TouchEvent: true, TrackEvent: true, TransitionEvent: true, WebKitTransitionEvent: true, UIEvent: true, VRDeviceEvent: true, VRDisplayEvent: true, VRSessionEvent: true, WheelEvent: true, MojoInterfaceRequestEvent: true, ResourceProgressEvent: true, USBConnectionEvent: true, AudioProcessingEvent: true, OfflineAudioCompletionEvent: true, WebGLContextEvent: true, Event: false, InputEvent: false, SubmitEvent: false, AbsoluteOrientationSensor: true, Accelerometer: true, AccessibleNode: true, AmbientLightSensor: true, Animation: true, ApplicationCache: true, DOMApplicationCache: true, OfflineResourceList: true, BackgroundFetchRegistration: true, BatteryManager: true, BroadcastChannel: true, CanvasCaptureMediaStreamTrack: true, EventSource: true, FileReader: true, FontFaceSet: true, Gyroscope: true, XMLHttpRequest: true, XMLHttpRequestEventTarget: true, XMLHttpRequestUpload: true, LinearAccelerationSensor: true, Magnetometer: true, MediaDevices: true, MediaKeySession: true, MediaQueryList: true, MediaRecorder: true, MediaSource: true, MediaStream: true, MediaStreamTrack: true, MessagePort: true, MIDIAccess: true, MIDIInput: true, MIDIOutput: true, MIDIPort: true, NetworkInformation: true, Notification: true, OffscreenCanvas: true, OrientationSensor: true, PaymentRequest: true, Performance: true, PermissionStatus: true, PresentationAvailability: true, PresentationConnection: true, PresentationConnectionList: true, PresentationRequest: true, RelativeOrientationSensor: true, RemotePlayback: true, RTCDataChannel: true, DataChannel: true, RTCDTMFSender: true, RTCPeerConnection: true, webkitRTCPeerConnection: true, mozRTCPeerConnection: true, ScreenOrientation: true, Sensor: true, ServiceWorker: true, ServiceWorkerContainer: true, ServiceWorkerRegistration: true, SharedWorker: true, SpeechRecognition: true, SpeechSynthesis: true, SpeechSynthesisUtterance: true, VR: true, VRDevice: true, VRDisplay: true, VRSession: true, VisualViewport: true, WebSocket: true, Worker: true, WorkerPerformance: true, BluetoothDevice: true, BluetoothRemoteGATTCharacteristic: true, Clipboard: true, MojoInterfaceInterceptor: true, USB: true, IDBDatabase: true, IDBTransaction: true, AnalyserNode: true, RealtimeAnalyserNode: true, AudioBufferSourceNode: true, AudioDestinationNode: true, AudioNode: true, AudioScheduledSourceNode: true, AudioWorkletNode: true, BiquadFilterNode: true, ChannelMergerNode: true, AudioChannelMerger: true, ChannelSplitterNode: true, AudioChannelSplitter: true, ConstantSourceNode: true, ConvolverNode: true, DelayNode: true, DynamicsCompressorNode: true, GainNode: true, AudioGainNode: true, IIRFilterNode: true, MediaElementAudioSourceNode: true, MediaStreamAudioDestinationNode: true, MediaStreamAudioSourceNode: true, OscillatorNode: true, Oscillator: true, PannerNode: true, AudioPannerNode: true, webkitAudioPannerNode: true, ScriptProcessorNode: true, JavaScriptAudioNode: true, StereoPannerNode: true, WaveShaperNode: true, EventTarget: false, File: true, FileList: true, FileWriter: true, HTMLFormElement: true, Gamepad: true, History: true, HTMLCollection: true, HTMLFormControlsCollection: true, HTMLOptionsCollection: true, ImageData: true, Location: true, MediaList: true, MessageEvent: true, MIDIInputMap: true, MIDIOutputMap: true, MimeType: true, MimeTypeArray: true, Document: true, DocumentFragment: true, HTMLDocument: true, ShadowRoot: true, XMLDocument: true, Attr: true, DocumentType: true, Node: false, NodeList: true, RadioNodeList: true, Plugin: true, PluginArray: true, RTCStatsReport: true, HTMLSelectElement: true, SourceBuffer: true, SourceBufferList: true, SpeechGrammar: true, SpeechGrammarList: true, SpeechRecognitionResult: true, Storage: true, CSSStyleSheet: true, StyleSheet: true, TextTrack: true, TextTrackCue: true, VTTCue: true, TextTrackCueList: true, TextTrackList: true, TimeRanges: true, Touch: true, TouchList: true, TrackDefaultList: true, URL: true, VideoTrackList: true, Window: true, DOMWindow: true, DedicatedWorkerGlobalScope: true, ServiceWorkerGlobalScope: true, SharedWorkerGlobalScope: true, WorkerGlobalScope: true, CSSRuleList: true, ClientRect: true, DOMRect: true, GamepadList: true, NamedNodeMap: true, MozNamedAttrMap: true, SpeechRecognitionResultList: true, StyleSheetList: true, IDBKeyRange: true, IDBOpenDBRequest: true, IDBVersionChangeRequest: true, IDBRequest: true, IDBVersionChangeEvent: true, SVGLength: true, SVGLengthList: true, SVGNumber: true, SVGNumberList: true, SVGPointList: true, SVGStringList: true, SVGTransform: true, SVGTransformList: true, AudioBuffer: true, AudioParamMap: true, AudioTrackList: true, AudioContext: true, webkitAudioContext: true, BaseAudioContext: false, OfflineAudioContext: true}); A.NativeTypedArray.$nativeSuperclassTag = "ArrayBufferView"; A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin.$nativeSuperclassTag = "ArrayBufferView"; A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin_FixedLengthListMixin.$nativeSuperclassTag = "ArrayBufferView"; A.NativeTypedArrayOfDouble.$nativeSuperclassTag = "ArrayBufferView"; A._NativeTypedArrayOfInt_NativeTypedArray_ListMixin.$nativeSuperclassTag = "ArrayBufferView"; A._NativeTypedArrayOfInt_NativeTypedArray_ListMixin_FixedLengthListMixin.$nativeSuperclassTag = "ArrayBufferView"; A.NativeTypedArrayOfInt.$nativeSuperclassTag = "ArrayBufferView"; A._SourceBufferList_EventTarget_ListMixin.$nativeSuperclassTag = "EventTarget"; A._SourceBufferList_EventTarget_ListMixin_ImmutableListMixin.$nativeSuperclassTag = "EventTarget"; A._TextTrackList_EventTarget_ListMixin.$nativeSuperclassTag = "EventTarget"; A._TextTrackList_EventTarget_ListMixin_ImmutableListMixin.$nativeSuperclassTag = "EventTarget"; })(); Function.prototype.call$1 = function(a) { return this(a); }; Function.prototype.call$2 = function(a, b) { return this(a, b); }; Function.prototype.call$0 = function() { return this(); }; Function.prototype.call$3 = function(a, b, c) { return this(a, b, c); }; Function.prototype.call$4 = function(a, b, c, d) { return this(a, b, c, d); }; Function.prototype.call$1$1 = function(a) { return this(a); }; Function.prototype.call$5 = function(a, b, c, d, e) { return this(a, b, c, d, e); }; Function.prototype.call$6 = function(a, b, c, d, e, f) { return this(a, b, c, d, e, f); }; convertAllToFastObject(holders); convertToFastObject($); (function(callback) { if (typeof document === "undefined") { callback(null); return; } if (typeof document.currentScript != "undefined") { callback(document.currentScript); return; } var scripts = document.scripts; function onLoad(event) { for (var i = 0; i < scripts.length; ++i) scripts[i].removeEventListener("load", onLoad, false); callback(event.target); } for (var i = 0; i < scripts.length; ++i) scripts[i].addEventListener("load", onLoad, false); })(function(currentScript) { init.currentScript = currentScript; var callMain = A.main; if (typeof dartMainRunner === "function") dartMainRunner(callMain, []); else callMain([]); }); })(); //# sourceMappingURL=native_executor.js.map